﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace V82.ОбщиеМодули
{
	public partial class УправлениеКонтактнойИнформацией
	{
		// Этот модуль предназачен для реализации алгоритмов работы
		// с контактной информацией.
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ И ФУНКЦИИ ОБЩЕГО НАЗНАЧЕНИЯ
		//процедура пытается заблокировать объект для изменения

		public void ПроизвестиПопыткуЗаблокироватьОбъект(/*ЭтотОбъект, ЭтаФорма*/)
		{
			//ЭтотОбъект.Заблокировать();
			//ЭтаФорма.Модифицированность = Истина;
		}
		// Функция раскладывает номер телефона, по полям для записи в КИ объекта
		//
		// Параметры
		//
		//  НомерТелефона - строка, номер телефона для преобразования
		//
		// Возвращаемое значение:
		//   Список значений
		//

		public object РазложитьТелефонПоПолям(/*НомерТелефона*/)
		{
			//КодСтраны = "";
			//НачалоКодаСтраны = Найти(НомерТелефона, "+");
			if(true/*НачалоКодаСтраны > 0*/)
			{
			}
			//КодСтраны = СокрЛП(КодСтраны);
			//КодГорода = "";
			if(true/*СтрЧислоВхождений(НомерТелефона, "(") = 1 И СтрЧислоВхождений(НомерТелефона, ")") = 1*/)
			{
				//НачалоКодаГорода = Найти(НомерТелефона, "(");
				//КонецКодаГорода = Найти(НомерТелефона, ")");
				if(true/*КонецКодаГорода > НачалоКодаГорода*/)
				{
					//КодГорода = Сред(НомерТелефона, (НачалоКодаГорода + 1), (КонецКодаГорода - НачалоКодаГорода - 1));
				}
			}
			//КодГорода = СокрЛП(КодГорода);
			//СамТелефон = НомерТелефона;
			if(true/*НЕ ПустаяСтрока(КодСтраны)*/)
			{
				//СамТелефон = СтрЗаменить(СамТелефон, ("+" + КодСтраны), "");
				//СамТелефон = СокрЛП(СамТелефон);
			}
			if(true/*НЕ ПустаяСтрока(КодГорода)*/)
			{
				//СамТелефон = СтрЗаменить(СамТелефон, ("(" + КодГорода + ")"), "");
				//СамТелефон = СокрЛП(СамТелефон);
			}
			//а = 1;
			while(true/*а <= СтрДлина(СамТелефон)*/)
			{
				if(true/*(КодСимвола(Сред(СамТелефон, а, 1)) >= 48 И КодСимвола(Сред(СамТелефон, а, 1)) <= 57) ИЛИ КодСимвола(Сред(СамТелефон, а, 1)) = 32*/)
				{
					//а = а + 1;
				}
				//СамТелефон = Сред(СамТелефон, 1, (а - 1)) + Сред(СамТелефон, (а + 1));
			}
			if(true/*НЕ ПустаяСтрока(КодСтраны) И Лев(СокрЛ(КодСтраны), 1) <> "+"*/)
			{
				//КодСтраны = СокрЛП(КодСтраны);
				while(true/*Лев(КодСтраны, 1) = "0"*/)
				{
					//КодСтраны = Сред(КодСтраны, 2);
				}
				if(true/*НЕ ПустаяСтрока(КодСтраны)*/)
				{
					//КодСтраны = "+" + КодСтраны;
				}
			}
			//СтруктураПолейТелефона = Новый Структура("КодСтраны,КодГорода,СамТелефон", КодСтраны, КодГорода, ПривестиНомерТелефонаКШаблону(СамТелефон));
			return null;
		}
		// ()
		// Функция проверяет строку на наличие значимых символов
		//
		// Параметры
		//  ВыбСтрока  – строка для проверки
		// Возвращаемое значение:
		//   Строка - пробел или пустое значение строки
		//

		public object ПроверкаПустойСтроки(/*ВыбСтрока, ПризнакЗапятой=Истина*/)
		{
			if(true/*ПустаяСтрока(ВыбСтрока)*/)
			{
			}
			return null;
		}
		// ПроверкаПустойСтроки()
		// Процедура заполняет поля объекта редактирования адреса по структуре

		public void ЗаполнитьОбъектРедактированияАдресаПоСтруктуре(/*Объект, СтруктураАдреса*/)
		{
			if(true/*СтруктураАдреса = Неопределено*/)
			{
				//Объект.Поле1 = "";
				//Объект.Поле2 = "";
				//Объект.Поле3 = "";
				//Объект.Поле4 = "";
				//Объект.Поле5 = "";
				//Объект.Поле6 = "";
				//Объект.Поле7 = "";
				//Объект.Поле8 = "";
				//Объект.Поле9 = "";
				//Объект.Представление = "";
				//Объект.ТипДома 		= Перечисления.ТипыДомов.Дом;
				//Объект.ТипКорпуса 	= Перечисления.ТипыКорпусов.Корпус;
				//Объект.ТипКвартиры 	= Перечисления.ТипыКвартир.Квартира;
			}
			if(true/*СтруктураАдреса.Свойство("ЗаПределамиРФ")*/)
			{
				//Объект.Поле1 = СтруктураАдреса.Страна;
				//Объект.Представление = СтруктураАдреса.Представление;
			}
		}
		//Процедура дополняет представление адреса строкой

		public void ДополнитьПредставлениеАдреса(/*ТекущееПредставление, Дополнение, СтрокаКонкатенации*/)
		{
			if(true/*Дополнение <> ""*/)
			{
				//ТекущееПредставление = ТекущееПредставление + СтрокаКонкатенации + Дополнение;
			}
		}
		// Функция возвращает строковое представление адреса (в формате через запятую) , включая незаполненные поля

		public object ПолучитьПолныйАдрес(/*Запись*/)
		{
			//Результат = "";
			if(true/*Запись = Неопределено*/)
			{
			}
			if(true/*ОпределитьДляОбъектаРоссийскийАдрес(Запись)*/)
			{
				/*Результат = "," + 
		СокрЛП(Запись.Поле1) + ", " +
		СокрЛП(Запись.Поле2) + ", " +
		СокрЛП(Запись.Поле3) + ", " +
		СокрЛП(Запись.Поле4) + ", " +
		СокрЛП(Запись.Поле5) + ", " +
		СокрЛП(Запись.Поле6) + ", " +
		СокрЛП(Запись.Поле7) + ", " +
		СокрЛП(Запись.Поле8) + ", " +
		СокрЛП(Запись.Поле9);*/
				/*// Если в записи присутствует хотябы одно заполненное значение номе дома, номер корпуса или номер квартиры
*/
				/*// дополним результат значениями типов домов, корпусов, квартир
*/
				if(true/*НЕ ПустаяСтрока(Запись.Поле7) ИЛИ НЕ ПустаяСтрока(Запись.Поле8) ИЛИ НЕ ПустаяСтрока(Запись.Поле9)*/)
				{
					/*Результат = Результат + ", " +
				СокрЛП(Запись.ТипДома)+ ", " +
				СокрЛП(Запись.ТипКорпуса)+ ", " +
				СокрЛП(Запись.ТипКвартиры);*/
				}
			}
			if(true/*ПустаяСтрока(СтрЗаменить(Результат, ",", ""))*/)
			{
				//Результат = "";
			}
			return null;
		}
		// Функция выполняет "преобразование" строкового представления адреса в структуру

		public object ПолучитьСтруктуруАдресаИзСтроки(/*Знач СтроковыйАдрес*/)
		{
			if(true/*ПустаяСтрока(СтроковыйАдрес)*/)
			{
			}
			//ЧислоВхожденийЗапятойВАдрес = СтрЧислоВхождений(СтроковыйАдрес, ",");
			/*//используем формат 9 или 12 запятых для совместимости
*/
			if(true/*(ЧислоВхожденийЗапятойВАдрес = 9) ИЛИ (ЧислоВхожденийЗапятойВАдрес = 12)*/)
			{
				//СтруктураАдреса = РегламентированнаяОтчетность.РазложитьАдрес(СтроковыйАдрес);
			}
			return null;
		}
		// функция определяет есть ли хотя бы одна не цифра в строке

		public object ЕстьНеЦифрыВСтроке(/*Знач СтрокаПроверки*/)
		{
			return null;
		}
		//Функция для объекта редактирования определяет Российский это адрес или нет

		public object ОпределитьДляОбъектаРоссийскийАдрес(/*ОбъектРедактирования*/)
		{
			if(true/*(НЕ ПустаяСтрока(ОбъектРедактирования.Поле1))*/)
			{
				/*// если хотя бы один символ не цифра, то это точно не индекс
*/
				//МожетБытьИностарнныйАдрес = ЕстьНеЦифрыВСтроке(ОбъектРедактирования.Поле1);
				/*// так, если есть хоть одна не цифра - это иностранный адрес, а если все цивры то Российский
*/
			}
			/*// Сравниваем представления
*/
			//ЭтоРоссийскийАдрес = (ПолучитьПредставлениеАдреса(ОбъектРедактирования) = ОбъектРедактирования.Представление);
			return null;
		}
		//Функция по структуре с адресом возвращает его представление

		public object ПолучитьПредставлениеАдресаПоСтруктуре(/*СтруктураАдреса*/)
		{
			//ТекПредставление = "";
			if(true/*СтруктураАдреса = Неопределено*/)
			{
			}
			//АдресЗаПределамиРФ = Неопределено;
			//СтруктураАдреса.Свойство("ЗаПределамиРФ", АдресЗаПределамиРФ);
			if(true/*АдресЗаПределамиРФ = Неопределено*/)
			{
				//АдресЗаПределамиРФ = Ложь;
			}
			if(true/*Не АдресЗаПределамиРФ*/)
			{
				//ДополнитьПредставлениеАдреса(ТекПредставление, СокрЛП(СтруктураАдреса.Индекс), ", ");
				//ДополнитьПредставлениеАдреса(ТекПредставление, СокрЛП(СтруктураАдреса.Регион), ", ");
				//ДополнитьПредставлениеАдреса(ТекПредставление, СокрЛП(СтруктураАдреса.Район), ", ");
				//ДополнитьПредставлениеАдреса(ТекПредставление, СокрЛП(СтруктураАдреса.Город), ", ");
				//ДополнитьПредставлениеАдреса(ТекПредставление, СокрЛП(СтруктураАдреса.НаселенныйПункт), ", ");
				//ДополнитьПредставлениеАдреса(ТекПредставление, СокрЛП(СтруктураАдреса.Улица), ", ");
				//ДополнитьПредставлениеАдреса(ТекПредставление, СокрЛП(СтруктураАдреса.Дом), ", " + ?(СтруктураАдреса.Свойство("ТипДома") И ЗначениеЗаполнено(СтруктураАдреса.ТипДома), СтруктураАдреса.ТипДома, "дом") + " № ");
				//ДополнитьПредставлениеАдреса(ТекПредставление, СокрЛП(СтруктураАдреса.Корпус), ", " + ?(СтруктураАдреса.Свойство("ТипКорпуса") И ЗначениеЗаполнено(СтруктураАдреса.ТипКорпуса), СтруктураАдреса.ТипКорпуса, "корпус") + " ");
				//ДополнитьПредставлениеАдреса(ТекПредставление, СокрЛП(СтруктураАдреса.Квартира), ", " + ?(СтруктураАдреса.Свойство("ТипКвартиры") И ЗначениеЗаполнено(СтруктураАдреса.ТипКвартиры), СтруктураАдреса.ТипКвартиры, "кв.") + "");
				if(true/*СтрДлина(ТекПредставление) > 2*/)
				{
					//ТекПредставление = Сред(ТекПредставление, 3);
				}
			}
			return null;
		}
		// Функция возвращает представление адреса собранного из полей значений Поле1 - Поле10
		//
		// Параметры
		//  НЕТ
		//
		// Возвращаемое значение:
		//   Строка
		//

		public object ПолучитьПредставлениеАдреса(/*Запись*/)
		{
			//СтруктураЗаписи = Новый Структура("Поле1,Поле2,Поле3,Поле4,Поле5,Поле6,Поле7,Поле8,Поле9,Поле10,ТипДома,ТипКорпуса,ТипКвартиры");
			//ЗаполнитьЗначенияСвойств(СтруктураЗаписи, Запись);
			//ТекПредставление = "";
			//ДополнитьПредставлениеАдреса(ТекПредставление, СокрЛП(СтруктураЗаписи.Поле1), ", ");
			//ДополнитьПредставлениеАдреса(ТекПредставление, СокрЛП(СтруктураЗаписи.Поле2), ", ");
			//ДополнитьПредставлениеАдреса(ТекПредставление, СокрЛП(СтруктураЗаписи.Поле3), ", ");
			//ДополнитьПредставлениеАдреса(ТекПредставление, СокрЛП(СтруктураЗаписи.Поле4), ", ");
			//ДополнитьПредставлениеАдреса(ТекПредставление, СокрЛП(СтруктураЗаписи.Поле5), ", ");
			//ДополнитьПредставлениеАдреса(ТекПредставление, СокрЛП(СтруктураЗаписи.Поле6), ", ");
			//ДополнитьПредставлениеАдреса(ТекПредставление, СокрЛП(СтруктураЗаписи.Поле7), ", " + ?(ЗначениеЗаполнено(СтруктураЗаписи.ТипДома), СтруктураЗаписи.ТипДома, "дом") + " № ");
			//ДополнитьПредставлениеАдреса(ТекПредставление, СокрЛП(СтруктураЗаписи.Поле8), ", " + ?(ЗначениеЗаполнено(СтруктураЗаписи.ТипКорпуса), СтруктураЗаписи.ТипКорпуса, "корпус") + " ");
			//ДополнитьПредставлениеАдреса(ТекПредставление, СокрЛП(СтруктураЗаписи.Поле9), ", " + ?(ЗначениеЗаполнено(СтруктураЗаписи.ТипКвартиры), СтруктураЗаписи.ТипКвартиры, "кв.") + "");
			if(true/*СтрДлина(ТекПредставление) > 2*/)
			{
				//ТекПредставление = Сред(ТекПредставление, 3);
			}
			return null;
		}
		//Функция по строке адреса (разделенная через запятую) возвращает его представление

		public object ПолучитьПредставлениеАдресаПоСтрока(/*СтрокаАдреса*/)
		{
			//СтруктураАдреса = ПолучитьСтруктуруАдресаИзСтроки(СтрокаАдреса);
			//ПредставлениеАдреса = ПолучитьПредставлениеАдресаПоСтруктуре(СтруктураАдреса);
			return null;
		}
		// Процедура формирует представление для Адреса за пределами РФ

		public object СформироватьПредставлениеАдресаЗаПределамиРФ(/*Страна, Представление*/)
		{
			//ТекущееПредставлениеАдреса = Представление;
			if(true/*ЗначениеЗаполнено(Страна) И Страна <> Справочники.КлассификаторСтранМира.Россия.Наименование*/)
			{
				//ПозицияСтраныВАдресе = Найти(Врег(Представление), Врег(Страна));
				/*// добавляем страну в самое начало представления, если ее там еще нет
*/
				if(true/*ПозицияСтраныВАдресе <> 1*/)
				{
					//ТекущееПредставлениеАдреса = Страна + ?(ЗначениеЗаполнено(Представление), (", " + Представление), "");
				}
			}
			return null;
		}
		// Функция возвращает представление адреса за пределами РФ без Страны

		public object ПолучитьПредставлениеАдресаЗаПределамиРФБезСтраны(/*Страна, Представление*/)
		{
			//ТекущееПредставлениеАдреса = Представление;
			if(true/*ЗначениеЗаполнено(Страна) И Страна <> Справочники.КлассификаторСтранМира.Россия.Наименование*/)
			{
				//ИмяСтраны = Страна + ", ";
				//ПозицияСтраныВАдресе = Найти(Врег(Представление), Врег(ИмяСтраны));
				/*// Если только страна в начале, то удаляем ее, иначе не трогаем
*/
				if(true/*ПозицияСтраныВАдресе = 1*/)
				{
					//ТекущееПредставлениеАдреса = Сред(Представление, СтрДлина(ИмяСтраны) + 1);
				}
			}
			return null;
		}
		// Процедура проверяет, если в наборе ни одна из записей такого типа
		// не является записью по умолчанию - назначает текущую запись таковой
		//

		public void УстановитьПризнакЗаписиПоУмолчанию(/*НаборЗаписей, ТекущаяЗапись*/)
		{
			if(true/*НЕ ТекущаяЗапись.ЗначениеПоУмолчанию*/)
			{
				//ПараметрыПоиска = Новый Структура;
				//ПараметрыПоиска.Вставить("Объект",				ТекущаяЗапись.Объект);
				//ПараметрыПоиска.Вставить("Тип",					ТекущаяЗапись.Тип);
				//ПараметрыПоиска.Вставить("ЗначениеПоУмолчанию",	Истина);
				//ЕстьЗаписьПоУмолчанию = НайтиЗаписьКонтактнойИнформации(НаборЗаписей, ПараметрыПоиска) <> Неопределено;
				if(true/*Не ЕстьЗаписьПоУмолчанию*/)
				{
					//ТекущаяЗапись.ЗначениеПоУмолчанию = Истина;
				}
			}
		}

		public object НайтиЗаписьКонтактнойИнформации(/*НаборЗаписей, ПараметрыПоиска*/)
		{
			//НайденныСтроки = НайтиЗаписиКонтактнойИнформации(НаборЗаписей, ПараметрыПоиска);
			return null;
		}
		// НайтиЗаписьКонтактнойИнформации

		public object НайтиЗаписиКонтактнойИнформации(/*НаборЗаписей, ПараметрыПоиска*/)
		{
			//НайденныеСтроки = Новый Массив;
			return null;
		}
		// НайтиЗаписиКонтактнойИнформации

		public object АдресЭлектроннойПочтыПоУмолчанию(/**/)
		{
			//ВидАдресаЭППоУмолчанию = Неопределено;
			/*Запрос = Новый Запрос(
	"ВЫБРАТЬ ПЕРВЫЕ 1
	|	ВидыКонтактнойИнформации.Ссылка
	|ИЗ
	|	Справочник.ВидыКонтактнойИнформации КАК ВидыКонтактнойИнформации
	|ГДЕ
	|	ВидыКонтактнойИнформации.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты)
	|	И ВидыКонтактнойИнформации.ВидОбъектаКонтактнойИнформации = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовКонтактнойИнформации.ФизическиеЛица)
	|	И (НЕ ВидыКонтактнойИнформации.ПометкаУдаления)");*/
			//Выборка = Запрос.Выполнить().Выбрать();
			if(true/*Выборка.Следующий()*/)
			{
				//ВидАдресаЭППоУмолчанию = Выборка.Ссылка;
			}
			return null;
		}
		// АдресЭлектроннойПочтыПоУмолчанию
		// Процедура формирует строковое представление адреса.

		public void СформироватьПредставлениеТелефона(/*НаборПолей*/)
		{
			//НаборПолей.Представление = НаборПолей.Поле1;
			//НаборПолей.Представление = НаборПолей.Представление + ?((Не ПустаяСтрока(НаборПолей.Поле2)),(ПроверкаПустойСтроки(НаборПолей.Представление, Ложь)+"(" + НаборПолей.Поле2 + ")"),"");
			//НаборПолей.Представление = НаборПолей.Представление + ?((Не ПустаяСтрока(НаборПолей.Поле3)),(ПроверкаПустойСтроки(НаборПолей.Представление, ПустаяСтрока(НаборПолей.Поле2)) + ПривестиНомерТелефонаКШаблону(НаборПолей.Поле3)),"");
			if(true/*НЕ ПустаяСтрока(НаборПолей.Представление)*/)
			{
				//НаборПолей.Представление = НаборПолей.Представление + ?((Не ПустаяСтрока(НаборПолей.Поле4)),(ПроверкаПустойСтроки(НаборПолей.Представление) + "доб. " + ПривестиНомерТелефонаКШаблону(НаборПолей.Поле4)),"");
			}
		}
		// СформироватьПредставление()
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ И ФУНКЦИИ ОТОБРАЖЕНИЯ КИ В ФОРМАХ ОБЪЕКТОВ
		// Процедура считывает контактную информацию из ИБ и возвращает ТЗ
		//  Ссылка - Объект, по которому необходимо прочитать КИ

		public object ПрочитатьНаборЗаписейКонтактнойИнформации(/*Ссылка*/)
		{
			//Запрос = Новый Запрос;
			//Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ * ИЗ РегистрСведений.КонтактнаяИнформация ГДЕ Объект = &Объект";
			//Запрос.УстановитьПараметр("Объект", Ссылка);
			return null;
		}
		// Процедура считывает контактную информацию из ИБ в набор записей регистра сведений.
		//
		// Параметры:
		//  НаборЗаписей - набор записей регистра сведений
		//  Ссылка - Объект, по которому необходимо заполнить КИ
		//  СчитыватьНаборЗаписей - признак считывания набора записей

		public void ПрочитатьКонтактнуюИнформацию(/*НаборЗаписей, Ссылка*/)
		{
			if(true/*ТипЗнч(НаборЗаписей) <> Тип("РегистрСведенийНаборЗаписей.КонтактнаяИнформация")*/)
			{
				//НаборЗаписей = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
			}
			//НаборЗаписей.Отбор.Объект.Значение      = Ссылка;
			//НаборЗаписей.Отбор.Объект.Использование = Истина;
			//Запрос = Новый Запрос;
			/*Запрос.Текст = "
		|ВЫБРАТЬ РАЗРЕШЕННЫЕ
		|	ВложенныйЗапрос.Вид КАК Вид,
		|	ВложенныйЗапрос.Тип КАК Тип,
		|	ВложенныйЗапрос.Объект КАК Объект,
		|	МАКСИМУМ(ВложенныйЗапрос.Поле1) КАК Поле1,
		|	МАКСИМУМ(ВложенныйЗапрос.Поле2) КАК Поле2,
		|	МАКСИМУМ(ВложенныйЗапрос.Поле3) КАК Поле3,
		|	МАКСИМУМ(ВложенныйЗапрос.Поле4) КАК Поле4,
		|	МАКСИМУМ(ВложенныйЗапрос.Поле5) КАК Поле5,
		|	МАКСИМУМ(ВложенныйЗапрос.Поле6) КАК Поле6,
		|	МАКСИМУМ(ВложенныйЗапрос.Поле7) КАК Поле7,
		|	МАКСИМУМ(ВложенныйЗапрос.Поле8) КАК Поле8,
		|	МАКСИМУМ(ВложенныйЗапрос.Поле9) КАК Поле9,
		|	МАКСИМУМ(ВложенныйЗапрос.Поле10) КАК Поле10,
		|	МАКСИМУМ(ВложенныйЗапрос.Представление) КАК Представление,
		|	МАКСИМУМ(ВложенныйЗапрос.Комментарий) КАК Комментарий,
		|	МАКСИМУМ(ВложенныйЗапрос.ЗначениеПоУмолчанию) КАК ЗначениеПоУмолчанию,
		|	МАКСИМУМ(ВложенныйЗапрос.ТипДома) КАК ТипДома,
		|	МАКСИМУМ(ВложенныйЗапрос.ТипКорпуса) КАК ТипКорпуса,
		|	МАКСИМУМ(ВложенныйЗапрос.ТипКвартиры) КАК ТипКвартиры
		|ИЗ
		|	(ВЫБРАТЬ
		|		&Объект КАК Объект,
		|		ВидыКонтактнойИнформации.Тип КАК Тип,
		|		ВидыКонтактнойИнформации.Ссылка КАК Вид,
		|		"""" КАК Представление,
		|		"""" КАК Поле1,
		|		"""" КАК Поле2,
		|		"""" КАК Поле3,
		|		"""" КАК Поле4,
		|		"""" КАК Поле5,
		|		"""" КАК Поле6,
		|		"""" КАК Поле7,
		|		"""" КАК Поле8,
		|		"""" КАК Поле9,
		|		"""" КАК Поле10,
		|		"""" КАК Комментарий,
		|		ЛОЖЬ КАК ЗначениеПоУмолчанию,
		|		ЗНАЧЕНИЕ(Перечисление.ТипыДомов.ПустаяСсылка) КАК ТипДома,
		|		ЗНАЧЕНИЕ(Перечисление.ТипыКорпусов.ПустаяСсылка) КАК ТипКорпуса,
		|		ЗНАЧЕНИЕ(Перечисление.ТипыКвартир.ПустаяСсылка) КАК ТипКвартиры
		|	ИЗ
		|		Справочник.ВидыКонтактнойИнформации КАК ВидыКонтактнойИнформации
		|	ГДЕ
		|		(НЕ ВидыКонтактнойИнформации.ПометкаУдаления)
		|		И ВидыКонтактнойИнформации.ВидОбъектаКонтактнойИнформации = &ВидОбъектаКонтактнойИнформации
		|	
		|	ОБЪЕДИНИТЬ
		|	
		|	ВЫБРАТЬ
		|		РегистрСведенийКонтактнаяИнформация.Объект,
		|		РегистрСведенийКонтактнаяИнформация.Тип,
		|		РегистрСведенийКонтактнаяИнформация.Вид,
		|		ВЫРАЗИТЬ(РегистрСведенийКонтактнаяИнформация.Представление КАК СТРОКА(1000)),
		|		РегистрСведенийКонтактнаяИнформация.Поле1,
		|		РегистрСведенийКонтактнаяИнформация.Поле2,
		|		РегистрСведенийКонтактнаяИнформация.Поле3,
		|		РегистрСведенийКонтактнаяИнформация.Поле4,
		|		РегистрСведенийКонтактнаяИнформация.Поле5,
		|		РегистрСведенийКонтактнаяИнформация.Поле6,
		|		РегистрСведенийКонтактнаяИнформация.Поле7,
		|		РегистрСведенийКонтактнаяИнформация.Поле8,
		|		РегистрСведенийКонтактнаяИнформация.Поле9,
		|		РегистрСведенийКонтактнаяИнформация.Поле10,
		|		ВЫРАЗИТЬ(РегистрСведенийКонтактнаяИнформация.Комментарий КАК СТРОКА(1000)),
		|		РегистрСведенийКонтактнаяИнформация.ЗначениеПоУмолчанию,
		|		РегистрСведенийКонтактнаяИнформация.ТипДома,
		|		РегистрСведенийКонтактнаяИнформация.ТипКорпуса,
		|		РегистрСведенийКонтактнаяИнформация.ТипКвартиры
		|	ИЗ
		|		РегистрСведений.КонтактнаяИнформация КАК РегистрСведенийКонтактнаяИнформация
		|	ГДЕ
		|		РегистрСведенийКонтактнаяИнформация.Объект = &Объект) КАК ВложенныйЗапрос
		|
		|СГРУППИРОВАТЬ ПО
		|	ВложенныйЗапрос.Вид,
		|	ВложенныйЗапрос.Тип,
		|	ВложенныйЗапрос.Объект
		|
		|УПОРЯДОЧИТЬ ПО
		|	Представление УБЫВ,
		|	ВложенныйЗапрос.Тип.Порядок,
		|	Вид";*/
			//Запрос.УстановитьПараметр("ВидОбъектаКонтактнойИнформации", ВидОбъектаКИ(Ссылка));
			//Запрос.УстановитьПараметр("Объект", Ссылка);
			//ТабЗн = Запрос.Выполнить().Выгрузить();
			//НаборЗаписей.Загрузить(ТабЗн);
		}
		// Процедура записывает контактную информацию в ИБ из набора записей регистра сведений.
		//
		// Параметры:
		//  НаборЗаписей - набор записей регистра сведений
		//  Ссылка - Объект, по которому необходимо записать КИ
		//  Отказ - Булево
		//

		public void ЗаписатьКонтактнуюИнформацию(/*НаборЗаписей, Ссылка, Отказ*/)
		{
			if(true/*НЕ Отказ*/)
			{
				//ПервичныйНабор = НаборЗаписей.Выгрузить();
				//КолвоЭлементовКоллекции = НаборЗаписей.Количество();
				//НаборЗаписей.Отбор.Объект.Значение      = Ссылка;
				//НаборЗаписей.Отбор.Объект.Использование = Истина;
				if(true/*Не НастройкаПравДоступа.СравнитьТаблицыНаборовЗаписей(ПрочитатьНаборЗаписейКонтактнойИнформации(Ссылка), НаборЗаписей.Выгрузить())*/)
				{
					//ПрочитатьКонтактнуюИнформацию(НаборЗаписей, Ссылка);
				}
			}
		}
		// Процедура выполняется при активизации строки табличного поля, в котором
		// отображается контактная информация объектов в их формах, и управляет
		// доступностью кнопки командной пенели установки значения по умолчанию.
		//
		// Параметры:
		//  Элемент - ТабличноеПоле
		//  КнопкаУстановитьОсновным - Кнопка командной панели
		//

		public void КонтактнаяИнформацияПриАктивизацииСтрокиТаблицы(/*Элемент, КнопкаУстановитьОсновным*/)
		{
			if(true/*Элемент.ТекущиеДанные <> Неопределено*/)
			{
				if(true/*НЕ ЗначениеЗаполнено(Элемент.ТекущиеДанные.Представление)*/)
				{
					//КнопкаУстановитьОсновным.Пометка     = Ложь;
					//КнопкаУстановитьОсновным.Доступность = Ложь;
				}
			}
		}
		// Процедура выполняется при выводе строки табличного поля, в котором
		// отображается контактная информация объектов в их формах.
		//
		// Параметры:
		//  Элемент - ТабличноеПоле
		//  ОформлениеСтроки - Оформление строки табличного поля
		//  ДанныеСтроки - данные строки табличного поля
		//

		public void КонтактнаяИнформацияСписокПриВыводеСтроки(/*Элемент, ОформлениеСтроки, ДанныеСтроки*/)
		{
			/*// Если строкам не задана катринка, использовать стандартную
*/
			if(true/*Элемент.Колонки.Картинка.КартинкиСтрок.Вид = ВидКартинки.Пустая*/)
			{
				//Элемент.Колонки.Картинка.ОтображатьСтандартнуюКартинку = Истина;
			}
			//Элемент.Колонки.Картинка.ОтображатьСтандартнуюКартинку = Ложь;
			//ОформлениеСтроки.Ячейки.Картинка.ОтображатьКартинку = Истина;
			if(true/*ДанныеСтроки.ЗначениеПоУмолчанию*/)
			{
				//ОформлениеСтроки.Шрифт = Новый Шрифт(,, Истина);
			}
			if(true/*НЕ ЗначениеЗаполнено(ДанныеСтроки.Представление)*/)
			{
				//ОформлениеСтроки.ЦветТекста = WebЦвета.Серый;
			}
			if(true/*ДанныеСтроки.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес*/)
			{
				if(true/*ДанныеСтроки.Вид = Справочники.ВидыКонтактнойИнформации.ИнострАдресФизЛица*/)
				{
					if(true/*ЗначениеЗаполнено(ДанныеСтроки.Представление)*/)
					{
						//ОформлениеСтроки.Ячейки.Картинка.ИндексКартинки = 1;
					}
				}
			}
		}
		// КонтактнаяИнформацияСписокПриВыводеСтроки()
		// Процедура устанавливает запись контактной информации определенного типа и вида основной
		// для объекта в пространстве одного типа.
		//
		// Параметры:
		//  СтруктураПараметров - структура, параметры записи, для которой надо установить признак основной
		//   Ключи:
		//    Объект, СправочникСсылка, значение измерния Объект регистра сведений
		//    Тип, ПеречислениеСсылка.ТипыКонтактнойИнформации
		//    Вид, СправочникСсылка.ВидыКонтактнойИнформации
		//

		public void УстановитьЗаписьОсновной(/*НаборЗаписей, ТабличноеПоле, Кнопка*/)
		{
			if(true/*ТабличноеПоле.ТекущиеДанные <> Неопределено
	   И ЗначениеЗаполнено(ТабличноеПоле.ТекущиеДанные.Представление)*/)
			{
				if(true/*ТабличноеПоле.ТекущиеДанные.ЗначениеПоУмолчанию*/)
				{
					//ТабличноеПоле.ТекущиеДанные.ЗначениеПоУмолчанию = Ложь;
					//Кнопка.Пометка = Ложь;
				}
			}
		}
		// Обраьботчик события "ПередУдалением" табличного поля набора записей.
		//
		// Параметры:
		//  Элемент - Табличное поле
		//  Отказ - Булево
		//

		public void УдалитьЗаписьКонтактнойИнформации(/*Элемент, Отказ, Форма = Неопределено*/)
		{
			//Отказ = Истина;
			if(true/*Элемент.ТекущиеДанные <> Неопределено И (ЗначениеЗаполнено(Элемент.ТекущиеДанные.Представление) ИЛИ ТипЗнч(Элемент.ТекущиеДанные.Вид) = Тип("Строка"))*/)
			{
				//ОтветНаВопрос = Вопрос("Удалить запись?", РежимДиалогаВопрос.ДаНет);
				if(true/*ОтветНаВопрос <> КодВозвратаДиалога.Да*/)
				{
				}
				if(true/*ТипЗнч(Элемент.ТекущиеДанные.Вид) = Тип("Строка")*/)
				{
					//Элемент.Значение.Удалить(Элемент.ТекущиеДанные);
				}
				if(true/*Форма <> Неопределено*/)
				{
					//Форма.Модифицированность = Истина;
				}
			}
		}
		// Функция формирует структуру записи регистра.
		//
		// Параметры:
		//  Запись - запись набора записей регистра сведений
		//

		public object ПолучитьСтруктуруЗаписиРегистра(/*Запись*/)
		{
			if(true/*ТипЗнч(Запись) = Тип("РегистрСведенийЗапись.КонтактнаяИнформация")
	 ИЛИ ТипЗнч(Запись) = Тип("РегистрСведенийМенеджерЗаписи.КонтактнаяИнформация")*/)
			{
				//СтруктураЗаписи = Новый Структура;
				//СтруктураЗаписи.Вставить("Объект"       , Запись.Объект);
				//СтруктураЗаписи.Вставить("Тип"          , Запись.Тип);
				//СтруктураЗаписи.Вставить("Вид"          , Запись.Вид);
				//СтруктураЗаписи.Вставить("Представление", Запись.Представление);
				//СтруктураЗаписи.Вставить("Комментарий"  , Запись.Комментарий);
				//СтруктураЗаписи.Вставить("ТипДома"  	, Запись.ТипДома);
				//СтруктураЗаписи.Вставить("ТипКорпуса"  	, Запись.ТипКорпуса);
				//СтруктураЗаписи.Вставить("ТипКвартиры"  , Запись.ТипКвартиры);
			}
			return null;
		}
		// Процедура копирует из строки источника адрес в строку приемника

		public void СкопироватьДанныеАдреса(/*СтрокаИсточник, СтрокаПриемник*/)
		{
			//СтрокаПриемник.Представление	= СтрокаИсточник.Представление;
			//СтрокаПриемник.Комментарий 		= СтрокаИсточник.Комментарий;
		}
		// Процедура копирует КИ из Ффактич адреса в юридический и наоборот

		public void СкопироватьАдресКонтактнойИнформации(/*СтрокаСАдресом, ТаблицаКИ*/)
		{
			if(true/*(СтрокаСАдресом = Неопределено) Или (ТаблицаКИ = Неопределено)*/)
			{
			}
			if(true/*СтрокаСАдресом.Вид = Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента*/)
			{
				//ВидПоиска = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
			}
			//ЗадаватьВопросОбИзменении = Истина;
			/*// бежим по всем записям регистра и те которые нужно поменять - меняем
*/
		}
		// Процедура контролирует возможность редактирования текста в поле вводп представления КИ.
		//

		public void УстановитьВозможностьРедактированияТекстаКИ(/*Элемент*/)
		{
			if(true/*Элемент.ТекущиеДанные.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес
	   И ЗначениеЗаполнено(Элемент.ТекущиеДанные.Представление)
	   И (ОпределитьДляОбъектаРоссийскийАдрес(Элемент.ТекущиеДанные))
	   И Элемент.ТекущиеДанные.Вид <> Справочники.ВидыКонтактнойИнформации.ИнострАдресФизЛица*/)
			{
				//Элемент.Колонки.Представление.ЭлементУправления.РедактированиеТекста = Ложь;
			}
		}
		// Обработчик события "ПриНачалеРедактирования" табличного поля
		// набора записей регистра сведений
		//

		public void КонтактнаяИнформацияПриНачалеРедактированияОбщая(/*Элемент, НоваяСтрока, ПоследнееЗначениеЭлементаПоискаПоСтрокеВидаКИ*/)
		{
			if(true/*НоваяСтрока*/)
			{
				if(true/*НЕ ЗначениеЗаполнено(Элемент.ТекущиеДанные.Тип)*/)
				{
					//Элемент.ТекущиеДанные.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
				}
				if(true/*НЕ ЗначениеЗаполнено(Элемент.ТекущиеДанные.Вид)*/)
				{
					//Элемент.ТекущиеДанные.Вид = Справочники.ВидыКонтактнойИнформации.ПустаяСсылка();
				}
			}
			//ПоследнееЗначениеЭлементаПоискаПоСтрокеВидаКИ = Элемент.ТекущиеДанные.Вид;
		}
		// Обработчик события "ПередОкончаниемРедактирования" табличного поля
		// набора записей регистра сведений
		//

		public void КонтактнаяИнформацияПередОкончаниемРедактированияОбщая(/*Элемент, НоваяСтрока, ОтменаРедактирования, Отказ, мТекстПоискаПоСтрокеВидаКИ, мОбработкаПоискаПоСтрокеВидаКИ*/)
		{
			if(true/*мОбработкаПоискаПоСтрокеВидаКИ И НЕ НоваяСтрока*/)
			{
				//мОбработкаПоискаПоСтрокеВидаКИ = Ложь;
				//Отказ = Истина;
				//Элемент.ТекущаяКолонка = Элемент.Колонки.Вид;
				//Элемент.Колонки.Вид.ЭлементУправления.ВыделенныйТекст = мТекстПоискаПоСтрокеВидаКИ;
				//мТекстПоискаПоСтрокеВидаКИ = "";
			}
		}
		// Обработчик события "ПриИзменении" представления КИ табличного поля
		// набора записей регистра сведений
		//

		public void КонтактнаяИнформацияПредставлениеПриИзмененииОбщая(/*Элемент, ТабличноеПоле*/)
		{
			if(true/*ТабличноеПоле.ТекущиеДанные.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон*/)
			{
				//СтруктураПолей = РазложитьТелефонПоПолям(Элемент.Значение);
				//ТабличноеПоле.ТекущиеДанные.Поле3 = СтруктураПолей.СамТелефон;
				//ТабличноеПоле.ТекущиеДанные.Поле1 = СтруктураПолей.КодСтраны;
				//ТабличноеПоле.ТекущиеДанные.Поле2 = СтруктураПолей.КодГорода;
				//СформироватьПредставлениеТелефона(ТабличноеПоле.ТекущиеДанные);
			}
		}
		// Обработчик события "ПередНачаломДобавления" табличного поля
		// набора записей регистра сведений
		//

		public void КонтактнаяИнформацияПередНачаломДобавленияОбщее(/*Элемент, Отказ, Копирование, мКнопкаРедактироватьКИВДиалоге, ТабличноеПоле, 
														  НаборКонтактнойИнформации, ДоступностьОбъекта = Истина, Форма = Неопределено*/)
		{
			if(true/*Не Копирование*/)
			{
				if(true/*мКнопкаРедактироватьКИВДиалоге.Пометка*/)
				{
					//Отказ = Истина;
					//ОбработкаРедактирования = Обработки.РедактированиеКонтактнойИнформации.Создать();
					//ОбработкаРедактирования.ДоступностьОбъекта = ДоступностьОбъекта;
					//ОбработкаРедактирования.РедактироватьЗапись(НаборКонтактнойИнформации, , Форма);
				}
			}
		}
		// Обработчик события "ПередНачаломИзменения" табличного поля
		// набора записей регистра сведений
		//

		public void КонтактнаяИнформацияПередНачаломИзмененияОбщее(/*Элемент, Отказ, мКнопкаРедактироватьКИВДиалоге, ДоступностьОбъекта = Истина, Форма = Неопределено*/)
		{
			if(true/*мКнопкаРедактироватьКИВДиалоге.Пометка*/)
			{
				//Отказ = Истина;
				//ОбработкаРедактирования = Обработки.РедактированиеКонтактнойИнформации.Создать();
				//ОбработкаРедактирования.ДоступностьОбъекта = ДоступностьОбъекта;
				//ОбработкаРедактирования.РедактироватьЗапись(Элемент.ТекущиеДанные, , Форма);
			}
		}
		// Обработчик событие "Нажатия" кнопки выбора режима редактирования
		// контаткной информации

		public void КонтактнаяИнформацияРедактироватьВДиалоге(/*Кнопка*/)
		{
			/*Экспорт
	
	РазрешеноВСписке = УправлениеДопПравамиПользователей.РазрешитьРедактированиеКИвСписке();*/
			if(true/*РазрешеноВСписке*/)
			{
				//Кнопка.Пометка = НЕ Кнопка.Пометка;
			}
		}
		// Процедура устанавливает пометку для кнопки выбора режима редактирования
		// контактной информации в форме

		public void ИнициализацияКнопкиРедактированиеКИВДиалоге(/*Кнопка*/)
		{
			//РазрешеноВСписке = УправлениеДопПравамиПользователей.РазрешитьРедактированиеКИвСписке();
			if(true/*РазрешеноВСписке*/)
			{
				//НажатиеКнопки = ВосстановитьЗначение("РедактироватьКИВДиалоге");
				if(true/*ТипЗнч(НажатиеКнопки) = Тип("Булево")*/)
				{
					//Кнопка.Пометка = НажатиеКнопки;
				}
			}
		}
		// Обработчик события "ПриИзменении" Типа КИ табличного поля
		// набора записей регистра сведений
		//

		public void КонтактнаяИнформацияТипПриИзмененииОбщее(/*Элемент, ТабличноеПоле*/)
		{
			if(true/*ТабличноеПоле.ТекущиеДанные <> Неопределено
	   И ЗначениеЗаполнено(ТабличноеПоле.ТекущиеДанные.Вид)
	   И ТипЗнч(ТабличноеПоле.ТекущиеДанные.Вид) = Тип("СправочникСсылка.ВидыКонтактнойИнформации")
	   И ТабличноеПоле.ТекущиеДанные.Вид.Тип <> Элемент.Значение*/)
			{
				//ТабличноеПоле.ТекущиеДанные.Вид = Справочники.ВидыКонтактнойИнформации.ПустаяСсылка();
			}
		}
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ И ФУНКЦИИ РАБОТЫ С ФОРМАМИ МЕХАНИЗМА ХРАНЕНИЯ КОНТАКНОЙ ИНФОРМАЦИИ
		// Процедура переносит строку из запроса в Структуру

		public void ПеренестиСтрокуВыборкиВСтруктуру(/*РезультатЗапроса, СтрокаВыборки, СтруктураЭлемента*/)
		{
			if(true/*СтруктураЭлемента = Неопределено 
		ИЛИ РезультатЗапроса = Неопределено 
		ИЛИ СтрокаВыборки = Неопределено*/)
			{
			}
			//СтруктураЭлемента.Очистить();
		}
		// Функция создает структуру по строке выборки

		public object СоздатьСтруктуруПоСтрокеВыборки(/*РезультатЗапроса, СтрокаВыборки*/)
		{
			//РезультирующаяСтруктура = Новый Структура;
			//ПеренестиСтрокуВыборкиВСтруктуру(РезультатЗапроса, СтрокаВыборки, РезультирующаяСтруктура);
			return null;
		}
		// Процедура переносит строку из таблицы в Структуру

		public void ПеренестиСтрокуТаблицыВСтруктуру(/*Таблица, СтрокаТаблицы, СтруктураЭлемента*/)
		{
			if(true/*СтруктураЭлемента = Неопределено 
		ИЛИ СтрокаТаблицы = Неопределено 
		ИЛИ Таблица = Неопределено*/)
			{
			}
			//СтруктураЭлемента.Очистить();
		}
		// Функция возвращает пустое значение определенного типа,
		//  в соответствии с видом объекта контактной информации
		//
		// Параметры
		//  ВидОбъектаКонтактнойИнформации - ПеречислениеСсылка.ВидыОбъектовКонтактнойИнформации
		//
		// Возвращаемое значение:
		//   СправочникСсылка (пустая) или Неопределено
		//

		public object ПолучитьПустоеЗначениеОбъектаКонтактнойИнформации(/*ВидОбъектаКонтактнойИнформации*/)
		{
			//ИмяВидаОбъектаКонтактнойИнформации = Метаданные.Перечисления.ВидыОбъектовКонтактнойИнформации.ЗначенияПеречисления[Перечисления.ВидыОбъектовКонтактнойИнформации.Индекс(ВидОбъектаКонтактнойИнформации)].Имя;
			if(true/*ВидОбъектаКонтактнойИнформации = Неопределено*/)
			{
			}
			return null;
		}
		// ()
		// Функция определяет вид объекта контактной информации
		//
		// Параметры
		//  ОбъектСсылка - Ссылка на объект контактной информации
		// Возвращаемые значения
		//  Возвращается ссылка на перечисление ВидыОбъектовКонтактнойИнформации,
		//  соответствующее параметру ОбъектСсылка

		public object ВидОбъектаКИ(/*ОбъектСсылка*/)
		{
			if(true/*ОбъектСсылка = Неопределено*/)
			{
			}
			return null;
		}
		// ВидОбъектаКИ()
		// Функция вызывается при начале выбора объекта контактной информации
		//
		// Параметры
		//  ФормаЗаписи - форма записи регистра сведений КонтактнаяИнформация
		//  Элемент - элемент формы записи регистра сведений КонтактнаяИнформация,
		//  значение которого выбирается.
		//
		// Возвращаемое значение:
		//   Булево - продолжить стандартную операцию выбора или нет.
		//

		public object НачалоВыбораОбъектаКИ(/*ФормаЗаписи, Элемент, ТекущийПользователь*/)
		{
			if(true/*Элемент.Значение <> Неопределено*/)
			{
			}
			//СписокТиповОбъектов = Новый СписокЗначений;
			//МассивТипов = ?(Элемент.ОграничениеТипа.Типы().Количество()>0, Элемент.ОграничениеТипа.Типы(), Элемент.ТипЗначения.Типы());
			if(true/*СписокТиповОбъектов.Количество() = 1*/)
			{
				//ВыбранноеЗначениеСписка = СписокТиповОбъектов[0];
			}
			if(true/*ВыбранноеЗначениеСписка = Неопределено*/)
			{
			}
			return null;
		}
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ И ФУНКЦИИ РАБОТЫ С ФОРМАМИ МЕХАНИЗМА РАБОТЫ С АДРЕСНЫМ КЛАССИФИКАТОРОМ
		// Функция по полному наименованию адресного элемента выдает отдельно его имя, и отдельно его адресное сокращение

		public object ПолучитьИмяИАдресноеСокращение(/*Знач СтрокаЭлемента, АдресноеСокращение*/)
		{
			//Буфер = СокрП(СтрокаЭлемента);
			//ПозицияПослПробела = Найти(Буфер, " ");
			if(true/*ПозицияПослПробела = 0*/)
			{
			}
			while(true/*СтрЧислоВхождений(Буфер, " ") > 1*/)
			{
				//Буфер = Лев(Буфер, ПозицияПослПробела - 1) + "_" + Сред(Буфер, ПозицияПослПробела + 1);
				//ПозицияПослПробела = Найти(Буфер, " ");
			}
			/*;

	Запрос = Новый Запрос;*/
			//Запрос.УстановитьПараметр("Сокращение", Сред(СтрокаЭлемента, ПозицияПослПробела + 1));
			/*Запрос.Текст =
	"ВЫБРАТЬ ПЕРВЫЕ 1
	|	АдресныеСокращения.Ссылка
	|ИЗ
	|	Справочник.АдресныеСокращения КАК АдресныеСокращения
	|
	|ГДЕ
	|	АдресныеСокращения.Сокращение = &Сокращение";*/
			//Выборка = Запрос.Выполнить().Выбрать();
			//АдресноеСокращение = "";
			if(true/*Выборка.Следующий()*/)
			{
				if(true/*ПустаяСтрока(СокрЛП(Лев(СтрокаЭлемента, ПозицияПослПробела - 1)))*/)
				{
				}
			}
			return null;
		}
		// Функция определяет является ли последнее слово в строке допустимым
		//  сокращением, и если является, то обрезает его из строки
		//
		// Параметры
		//  СтрокаЭлемента - Строка в которой необходимо обрезать сокращение
		// Возвращаемые значения
		//  Обрезаную строку в случае, если есть сокращение и полученную строку в
		// обратном случае

		public object ОбрезатьСокращение(/*Знач СтрокаЭлемента*/)
		{
			//АдресноеСокращение = "";
			//ИмяЭлемента = ПолучитьИмяИАдресноеСокращение(СтрокаЭлемента, АдресноеСокращение);
			return null;
		}
		// Функция по для переданной строки определят необходимость дополнить её
		// сокращением
		//
		// Параметры
		//  Название - Строка .для которой определяется необходимость дополнения
		// сокращением
		//  Уровень - уровень, для которго необходимо составить список сокращений
		// Возвращаемые значения
		//  Возвращается Неопределено, если строку дополнять не нужно или список
		// значений с сокращениями в обратном случае

		public object ПолучитьСписокСокращений(/*Знач Название, Уровень*/)
		{
			//Название = СокрЛП(Название);
			if(true/*ПустаяСтрока(Название)*/)
			{
			}
			if(true/*ОбрезатьСокращение(Название) <> Название*/)
			{
				/*// было что обрезать
*/
				/*// для строки не требуется допонение сокращением
*/
			}
			//Запрос = Новый Запрос;
			//Запрос.УстановитьПараметр("Уровень", Уровень);
			/*Запрос.Текст =
	"ВЫБРАТЬ
	|	АдресныеСокращения.Ссылка
	|ИЗ
	|	Справочник.АдресныеСокращения КАК АдресныеСокращения
	|
	|ГДЕ
	|	АдресныеСокращения.Уровень = &Уровень";*/
			//Выборка = Запрос.Выполнить().Выбрать();
			//СписокСокращений = Новый СписокЗначений();
			while(true/*Выборка.Следующий()*/)
			{
				//СписокСокращений.Добавить(Выборка.Ссылка.Сокращение);
			}
			if(true/*СписокСокращений.Количество() = 0*/)
			{
			}
			return null;
		}
		// Функция формирует строку с названием адресного элемента,
		// которое состоит из наименования и сокращения
		//
		// Параметры:
		//  АдресныйЭлемент - элемент справочника Адресный классфикатор.
		//
		// Возвращаемое значение:
		//  Название адресного элемента
		//

		public object ПолучитьНазвание(/*АдресныйЭлемент*/)
		{
			if(true/*АдресныйЭлемент.Код = 0*/)
			{
			}
			return null;
		}
		// Процедура раскладывает код адресного элемента на составляющие:
		// Код Региона, код района, код города, код населенного пункта, код улицы и код дома

		public void РазложитькодАдресногоЭлементаНаСоставляющие(/*Знач Код, КодРегиона, КодРайона, КодГорода, КодНаселенногоПункта, КодУлицы, КодДома*/)
		{
			//КодЭлемента = Код;
			//КодРегиона = Цел(КодЭлемента / МаскаРегиона());
			//КодЭлемента = КодЭлемента % МаскаРегиона();
			//КодРайона = Цел(КодЭлемента / МаскаРайона());
			//КодЭлемента = КодЭлемента % МаскаРайона();
			//КодГорода = Цел(КодЭлемента / МаскаГорода());
			//КодЭлемента = КодЭлемента % МаскаГорода();
			//КодНаселенногоПункта = Цел(КодЭлемента / МаскаНасПункта());
			//КодЭлемента = КодЭлемента % МаскаНасПункта();
			//КодУлицы = Цел(КодЭлемента / МаскаУлицы());
			//КодЭлемента = КодЭлемента % МаскаУлицы();
			//КодДома = Цел(КодЭлемента / МаскаДома());
		}
		// Функция формирует строку с полным названием адресного элемента,
		// которое состоит из наименования и сокращения самого адресного
		// элемента и его "родителей"
		//
		// Параметры:
		//  КодЭлемента - Код адресного элемента.
		//
		// Возвращаемое значение:
		//  Название адресного элемента и его родителей через запятую
		//

		public object ПолучитьПолноеНазвание(/*Знач КодЭлемента, НачальныйУровеньДетализации = 1, КонечныйУровеньДетализации = 6*/)
		{
			//РазложитькодАдресногоЭлементаНаСоставляющие(КодЭлемента, КодРегиона, КодРайона, КодГорода, КодНаселенногоПункта, КодУлицы, КодДома);
			//Название = "";
			//НовыйКод = 0;
			if(true/*(КодРегиона > 0)*/)
			{
				//НовыйКод = КодРегиона * МаскаРегиона();
				if(true/*(1 >= НачальныйУровеньДетализации) и (КонечныйУровеньДетализации >= 1)*/)
				{
					//Название = Название + ", " + ПолучитьНазвание(ПолучитьСтруктуруАдресногоЭлемента(НовыйКод));
				}
			}
			if(true/*(КодРайона > 0)*/)
			{
				//НовыйКод = НовыйКод + КодРайона * МаскаРайона();
				if(true/*(2 >= НачальныйУровеньДетализации) и (КонечныйУровеньДетализации >= 2)*/)
				{
					//Название = Название + ", " + ПолучитьНазвание(ПолучитьСтруктуруАдресногоЭлемента(НовыйКод));
				}
			}
			if(true/*(КодГорода > 0)*/)
			{
				//НовыйКод = НовыйКод + КодГорода * МаскаГорода();
				if(true/*(3 >= НачальныйУровеньДетализации) и (КонечныйУровеньДетализации >= 3)*/)
				{
					//Название = Название + ", " + ПолучитьНазвание(ПолучитьСтруктуруАдресногоЭлемента(НовыйКод));
				}
			}
			if(true/*(КодНаселенногоПункта > 0)*/)
			{
				//НовыйКод = НовыйКод + КодНаселенногоПункта * МаскаНасПункта();
				if(true/*(4 >= НачальныйУровеньДетализации) и (КонечныйУровеньДетализации >= 4)*/)
				{
					//Название = Название + ", " + ПолучитьНазвание(ПолучитьСтруктуруАдресногоЭлемента(НовыйКод));
				}
			}
			if(true/*(КодУлицы > 0)*/)
			{
				//НовыйКод = НовыйКод + КодУлицы * МаскаУлицы();
				if(true/*(5 >= НачальныйУровеньДетализации) и (КонечныйУровеньДетализации >= 5)*/)
				{
					//Название = Название + ", " + ПолучитьНазвание(ПолучитьСтруктуруАдресногоЭлемента(НовыйКод));
				}
			}
			if(true/*(КодДома > 0)*/)
			{
				//НовыйКод = НовыйКод + КодДома * МаскаДома();
				if(true/*(6 >= НачальныйУровеньДетализации) и (КонечныйУровеньДетализации >= 6)*/)
				{
					//Название = Название + ", " + ПолучитьНазвание(ПолучитьСтруктуруАдресногоЭлемента(НовыйКод));
				}
			}
			if(true/*СтрДлина(Название) > 2*/)
			{
				//Название = Сред(Название, 3);
			}
			return null;
		}
		// Функция ставит в соответствие типу адресного элемента маску,
		// через которую выделяется его значимый код
		//
		// Параметры:
		//  ТипАдресногоЭлемента -  число - тип адресного элемента.
		//
		// Возвращаемое значение:
		// Число - маска, при делении на которую выделяется значимый код
		// адресного элемента
		//

		public object ПолучитьМаскуПоТипу(/*ТипАдресногоЭлемента*/)
		{
			if(true/*ТипАдресногоЭлемента = 1*/)
			{
			}
			return null;
		}
		// Функция ставит в соответствие типу адресного элемента маску,
		// через которую выделяется его значимый код
		//
		// Параметры:
		//  ТипАдресногоЭлемента -  число - тип адресного элемента.
		//
		// Возвращаемое значение:
		// Число - маска, при делении на которую выделяется значимый код
		// адресного элемента
		//

		public object ПолучитьТипАдресногоЭлемента(/*КодЭлемента*/)
		{
			if(true/*КодЭлемента = 0*/)
			{
			}
			if(true/*КодЭлемента % МаскаРегиона() < 100*/)
			{
				/*// регион 21 ноль и АА
*/
			}
			return null;
		}

		public object ПолучитьСтруктуруАдресногоЭлемента(/*КодЭлемента*/)
		{
			/*ТексЗапроса = "ВЫБРАТЬ ПЕРВЫЕ 1
	              |	АдресныйКлассификатор.Код,
	              |	АдресныйКлассификатор.КодРегионаВКоде,
	              |	АдресныйКлассификатор.Наименование,
	              |	АдресныйКлассификатор.Сокращение,
	              |	АдресныйКлассификатор.Индекс,
	              |	АдресныйКлассификатор.ТипАдресногоЭлемента,
	              |	АдресныйКлассификатор.КодРайонаВКоде,
	              |	АдресныйКлассификатор.КодГородаВКоде,
	              |	АдресныйКлассификатор.КодНаселенногоПунктаВКоде,
	              |	АдресныйКлассификатор.КодУлицыВКоде
	              |ИЗ
	              |	РегистрСведений.АдресныйКлассификатор КАК АдресныйКлассификатор
	              |
	              |ГДЕ
	              |	АдресныйКлассификатор.Код = &КодЭлемента";*/
			//Запрос = Новый Запрос(ТексЗапроса);
			//Запрос.УстановитьПараметр("КодЭлемента", КодЭлемента);
			//РезультатЗапроса = Запрос.Выполнить();
			//Выборка = РезультатЗапроса.Выбрать();
			if(true/*Выборка.Следующий()*/)
			{
				//Структура = СоздатьСтруктуруПоСтрокеВыборки(РезультатЗапроса, Выборка);
			}
			return null;
		}
		// Функция возвращает структуру с набором полей как у записи регистра сведений
		//  АдресныйКлассификатор с пустым набором значений
		//
		// Параметры:
		// Нет.
		//
		// Возвращаемое значение:
		// Струтктура - структуру с набором полей как у записи регистра сведений
		//  АдресныйКлассификатор с пустым набором значений
		//

		public object ПолучитьПустуюСтруктуруАдреса(/**/)
		{
			return null;
		}
		// Функция ищет требуемый адресный элемент по названию и типу
		// и возвращает первый найденный. В качестве дополнения может
		// быть задан элемент "родитель"
		//
		// Параметры:
		//  НазваниеЭлемента - название адресного элемента ( с сокращением)
		//  ТипЭлемента - тип искомого адресного элемента
		//  ЭлементРодитель - элемент "родитель"
		//
		// Возвращаемое значение:
		//  Найденный элемент справоника Адресный классификатор или пустая ссылка в случае неудачи
		//

		public object ПолучитьАдресныйЭлемент(/*НазваниеЭлемента, ТипЭлемента, КодЭлементаРодителя = 0*/)
		{
			if(true/*(СокрЛП(НазваниеЭлемента) = "") ИЛИ (ТипЭлемента = 0)*/)
			{
			}
			/*// смотрим есть ли в имени адресное сокращение этого уровня
*/
			/*// если есть, то ищем по наименованию и адресному сокращению
*/
			//АдресноеСокращение = "";
			//НазваниеЭлемента = ПолучитьИмяИАдресноеСокращение(НазваниеЭлемента, АдресноеСокращение);
			//Запрос = Новый Запрос();
			//ОграничениеПоКоду = "";
			if(true/*КодЭлементаРодителя > 0*/)
			{
				/*// проверка на соответствие подчинению родителю
*/
				//ТипАдрЭлемента = ПолучитьТипАдресногоЭлемента(КодЭлементаРодителя);
				//МаскаРодителя = ПолучитьМаскуПоТипу(ТипАдрЭлемента);
				if(true/*ТипАдрЭлемента <= 5*/)
				{
					//КодЭлемента = КодЭлементаРодителя;
					//РазложитькодАдресногоЭлементаНаСоставляющие(КодЭлемента, КодРегиона, КодРайона, КодГорода, КодНаселенногоПункта, КодУлицы, КодДома);
					if(true/*КодРегиона <> 0*/)
					{
						//ОграничениеПоКоду = ОграничениеПоКоду + Символы.ПС + "  И (АдресныйКлассификатор.КодРегионаВКоде = &КодРегионаВКоде)";
						//Запрос.УстановитьПараметр("КодРегионаВКоде", КодРегиона);
					}
					if(true/*КодРайона <> 0*/)
					{
						//ОграничениеПоКоду = ОграничениеПоКоду + Символы.ПС + "  И (АдресныйКлассификатор.КодРайонаВКоде = &КодРайонаВКоде)";
						//Запрос.УстановитьПараметр("КодРайонаВКоде", КодРайона);
					}
					if(true/*КодГорода <> 0*/)
					{
						//ОграничениеПоКоду = ОграничениеПоКоду + Символы.ПС + "  И (АдресныйКлассификатор.КодГородаВКоде = &КодГородаВКоде)";
						//Запрос.УстановитьПараметр("КодГородаВКоде", КодГорода);
					}
					if(true/*КодНаселенногоПункта <> 0*/)
					{
						//ОграничениеПоКоду = ОграничениеПоКоду + Символы.ПС + "  И (АдресныйКлассификатор.КодНаселенногоПунктаВКоде = &КодНаселенногоПунктаВКоде)";
						//Запрос.УстановитьПараметр("КодНаселенногоПунктаВКоде", КодНаселенногоПункта);
					}
					if(true/*КодУлицы <> 0*/)
					{
						//ОграничениеПоКоду = ОграничениеПоКоду + Символы.ПС + "  И (АдресныйКлассификатор.КодУлицыВКоде = &КодУлицыВКоде)";
						//Запрос.УстановитьПараметр("КодУлицыВКоде", КодУлицы);
					}
				}
			}
			/*// ограничение на адресное сокращение
*/
			if(true/*АдресноеСокращение <> ""*/)
			{
				//ОграничениеПоКоду = ОграничениеПоКоду + Символы.ПС + "  И (АдресныйКлассификатор.Сокращение = &АдресноеСокращение)";
				//Запрос.УстановитьПараметр("АдресноеСокращение", АдресноеСокращение);
			}
			/*Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
				  |	АдресныйКлассификатор.Код,
	              |	АдресныйКлассификатор.КодРегионаВКоде,
	              |	АдресныйКлассификатор.Наименование,
	              |	АдресныйКлассификатор.Сокращение,
	              |	АдресныйКлассификатор.Индекс,
	              |	АдресныйКлассификатор.ТипАдресногоЭлемента,
	              |	АдресныйКлассификатор.КодРайонаВКоде,
	              |	АдресныйКлассификатор.КодГородаВКоде,
	              |	АдресныйКлассификатор.КодНаселенногоПунктаВКоде,
	              |	АдресныйКлассификатор.КодУлицыВКоде

	              |ИЗ
	              |	РегистрСведений.АдресныйКлассификатор КАК АдресныйКлассификатор
	              |
	              |ГДЕ
	              |	АдресныйКлассификатор.Наименование = &Наименование И
	              |	АдресныйКлассификатор.ТипАдресногоЭлемента = &ТипАдресногоЭлемента " +
				  ОграничениеПоКоду;*/
			//Запрос.УстановитьПараметр("Наименование", НазваниеЭлемента);
			//Запрос.УстановитьПараметр("ТипАдресногоЭлемента", ТипЭлемента);
			//РезультатЗапроса = Запрос.Выполнить();
			//Выборка = РезультатЗапроса.Выбрать();
			if(true/*Выборка.Следующий()*/)
			{
				//Структура = СоздатьСтруктуруПоСтрокеВыборки(РезультатЗапроса, Выборка);
			}
			return null;
		}
		// Функция определяет входимость числа в заданный диапазон
		//  При этом диапазон задается как это описано в комментарии к функции ЧислоВИнтервале
		//
		// Параметры:
		//  Номер - (число, строка) номер дома с корпусом
		//  Интервал - (строка), интервал чисел (домов)
		//
		// Возвращаемое значение:
		//  Истина - если заданное число входит в диапазон,
		//  Ложь   - если не входит
		//

		public object ВходитВИнтервал(/*Знач Номер, Интервал*/)
		{
			if(true/*ПустаяСтрока("" + Номер)*/)
			{
			}
			if(true/*НЕ ОбщегоНазначения.ТолькоЦифрыВСтроке(Номер, Ложь)*/)
			{
				//Возврат ВРЕГ(СтрЗаменить("" + Номер, " ", "")) = ВРЕГ(СтрЗаменить("" + Интервал, " ", ""));
			}
			//Номер = Число(Номер);
			//ТолькоЧислоИнтервал = ОбщегоНазначения.ТолькоЦифрыВСтроке(Интервал, Ложь);
			if(true/*ТолькоЧислоИнтервал*/)
			{
				if(true/*Номер = Число(Интервал)*/)
				{
				}
			}
			if(true/*Найти(Интервал,"Ч") > 0*/)
			{
				/*// диапазон четных чисел
*/
				//Интервал      = СтрЗаменить(Интервал, "Ч", "");
				//Четность = 2;
			}
			//Интервал = СтрЗаменить(Интервал, ")", "");
			/*// на всякий случай уберем скобки
*/
			//Интервал = СтрЗаменить(Интервал, "(", "");
			//Позиция  = Найти(Интервал, "-");
			//Попали = 0;
			if(true/*Позиция <> 0*/)
			{
				//МинЗначение  = ВыделитьЧислоИЗСтроки(Лев(Интервал, Позиция - 1));
				//МаксЗначение = ВыделитьЧислоИЗСтроки(Сред(Интервал, Позиция + 1));
				if(true/*(Номер >= МинЗначение) И (Номер <= МаксЗначение)*/)
				{
					//Попали = 1;
				}
			}
			if(true/*(Попали = 1) И (
		((Четность = 2) И (Номер % 2 = 0)) ИЛИ 
		((Четность = 1) И (Номер % 2 = 1)) ИЛИ 
		 (Четность = 0))*/)
			{
			}
			return null;
		}
		// ВходитВИнтервал()

		public object ВыделитьЧислоИЗСтроки(/*СтрокаСимволов*/)
		{
			//Набор = "0";
			return null;
		}

		public object НомерДомаИНомерКорпусаВходятВНабор(/*знач Набор, знач НомерДома, знач НомерКорпуса*/)
		{
			while(true/*НЕ ПустаяСтрока(Набор)*/)
			{
				//Позиция = Найти(Набор, ",");
				//Проверяемое = СокрЛП(Лев(Набор, ?(Позиция=0, СтрДлина(Набор), Позиция - 1)));
				//Префикс = ? ((ВРег(Лев(Проверяемое, 1)) = "К") И (Лев(НомерДома, 1) <> "к"), "к", "");
				if(true/*ВРег(Проверяемое) = ВРег(Префикс + НомерДома+НомерКорпуса)*/)
				{
				}
				//Набор = ?(Позиция = 0, "", Сред(Набор, Позиция + 1));
			}
			return null;
		}
		// Функция определяет входимость:
		//  1. Номера дома (представленного в виде строки)
		//     где Номер дома, это строка вида:
		//     <СтрокаДом> пример: 58А, 32/1, 50А/8
		//
		//  2. Номера дома и номера корпуса (строения), в виде строки:
		//     <СтрокаДом>к<СтрокаКорпус>,   пример: 32к1   это дом 32 корпус 1,
		//     <СтрокаДом>/<СтрокаКорпус>,   пример: 32/1   это дом 32 корпус 1,
		//     <СтрокаДом>стр<СтрокаКорпус>, пример: 32стр1 это дом 32 корпус 1,
		//
		//  3. Числа (номера дома) в заданный интервал чисел
		//     При этом интервал задается строкой вида:
		//     <Диапазон>[,<Диапазон>]
		//     где Диапазон, это строка вида:
		//     [Ч/Н]<Число>[-<Число>]
		//     Префикс Ч или Н диапазона обозначает четность и нечетность входящих в него чисел
		//     Пример: в интервал Ч12-14,Н1-5,20-29 входят числа 1,3,5,12,14 и все с 20 по 29
		//
		// Параметры:
		//  Номер - (число, строка) номер дома с корпусом
		//  Интервал - (строка), интервал чисел (домов)
		//
		//  Истина - если заданное число входит в диапазон,
		//  Ложь   - если не входит
		//

		public object НомерДомаВИнтервале(/*НомерДома, Знач Интервал*/)
		{
			while(true/*НЕ ПустаяСтрока(Интервал)*/)
			{
				//Позиция = Найти(Интервал, ",");
				if(true/*Позиция = 0*/)
				{
				}
			}
			return null;
		}
		// НомерДомаВИнтервале()
		// Функция определяет индекс по переданным улице, дому и корпусу
		//
		// Параметры:
		//  Улица - элемент справочника адресный классификатор с требуемой улицей
		//  НомерДома - номер дома, для которго необходимо получить индекс
		//  НомерКорпуса - номер корпуса
		//
		// Возвращаемое значение:
		//  Строка - шестизначный почтовый индекс
		//

		public object ПолучитьИндексПоУлицеДомуКорпусу(/*Улица, НомерДома, НомерКорпуса*/)
		{
			//Запрос = Новый Запрос;
			//Запрос.УстановитьПараметр("Уровень", 6);
			//Запрос.УстановитьПараметр("НижнийКод", Цел(Улица.Код / 10000000000) * 10000000000);
			//Запрос.УстановитьПараметр("ВерхнийКод", Цел(Улица.Код / 10000000000 + 1) * 10000000000);
			/*Запрос.Текст =
	"ВЫБРАТЬ
	|	АдресныйКлассификатор.Наименование,
	|	АдресныйКлассификатор.Индекс
	|ИЗ
	|	РегистрСведений.АдресныйКлассификатор КАК АдресныйКлассификатор
	|
	|ГДЕ
	|	АдресныйКлассификатор.ТипАдресногоЭлемента = &Уровень И
	|	АдресныйКлассификатор.Код МЕЖДУ &НижнийКод И &ВерхнийКод";*/
			//Выборка = Запрос.Выполнить().Выбрать();
			//ИндексДома = "";
			while(true/*Выборка.Следующий()*/)
			{
				if(true/*НЕ ПустаяСтрока(Выборка.Индекс)*/)
				{
					//Интервал = Врег(СокрЛП(Выборка.Наименование));
					if(true/*НомерДомаВИнтервале(СокрЛП(НомерДома), Интервал)*/)
					{
						//ИндексДома = Выборка.Индекс;
					}
					if(true/*(НомерДомаВИнтервале(СокрЛП(НомерДома) + ?(НЕ ПустаяСтрока(НомерКорпуса), "К", "") + СокрЛП(НомерКорпуса), Интервал))*/)
					{
					}
				}
			}
			if(true/*НЕ ПустаяСтрока(ИндексДома)*/)
			{
			}
			return null;
		}
		// Функция определяет индекс по переданным улице, дому и корпусу
		//
		// Параметры:
		//  НазваниеГорода	- элемент справочника адресный классификатор с требуемой улицей
		//  НомерДома		- номер дома, для которго необходимо получить индекс
		//  НомерКорпуса	- номер корпуса
		//
		// Возвращаемое значение:
		//  Строка - шестизначный почтовый индекс
		//

		public object ПолучитьИндексПоГородуДомуКорпусу(/*Города, НомерДома, НомерКорпуса*/)
		{
			//Запрос = Новый Запрос;
			/*Запрос.Текст =
	"ВЫБРАТЬ
	|	АдресныйКлассификатор.Наименование,
	|	АдресныйКлассификатор.Индекс
	|ИЗ
	|	РегистрСведений.АдресныйКлассификатор КАК АдресныйКлассификатор
	|
	|ГДЕ
	|	АдресныйКлассификатор.ТипАдресногоЭлемента = 6 И
	|	АдресныйКлассификатор.КодРайонаВКоде = 0 И
	|	АдресныйКлассификатор.КодНаселенногоПунктаВКоде = 0 И
	|	АдресныйКлассификатор.КодУлицыВКоде = 0 И
	|	АдресныйКлассификатор.КодРегионаВКоде = &КодРегиона И
	|	АдресныйКлассификатор.КодГородаВКоде = &КодГорода";*/
			//Запрос.Параметры.Вставить("КодРегиона", Города.КодРегионаВКоде);
			//Запрос.Параметры.Вставить("КодГорода",  Города.КодГородаВКоде);
			//Выборка = Запрос.Выполнить().Выбрать();
			//ИндексДома = "";
			while(true/*Выборка.Следующий()*/)
			{
				if(true/*НЕ ПустаяСтрока(Выборка.Индекс)*/)
				{
					//Интервал = Врег(СокрЛП(Выборка.Наименование));
					if(true/*НомерДомаВИнтервале(СокрЛП(НомерДома), Интервал)*/)
					{
					}
					if(true/*НомерДомаИНомерКорпусаВходятВНабор(Интервал, НомерДома, НомерКорпуса)*/)
					{
					}
				}
			}
			if(true/*НЕ ПустаяСтрока(ИндексДома)*/)
			{
			}
			return null;
		}
		// Функция определяет индекс по переданным региону, району, городу, населенному пункту,
		// улице, дому и корпусу
		//
		// Параметры:
		//  НазваниеРегиона - название региона( с сокращением)
		//  НазваниеРайона - название района( с сокращением)
		//  НазваниеГорода - название города( с сокращением)
		//  НазваниеНаселенногоПункта - название населенного пункта( с сокращением)
		//  Улица - название улицы ( с сокращением)
		//  НомерДома - номер дома, для которго необходимо получить индекс
		//  НомерКорпуса - номер корпуса
		//
		// Возвращаемое значение:
		//  Строка - шестизначный почтовый индекс
		//

		public object ПолучитьИндекс(/*Знач НазваниеРегиона, Знач НазваниеРайона, Знач НазваниеГорода, Знач НазваниеНаселенногоПункта, Знач НазваниеУлицы, Знач НомерДома, Знач НомерКорпуса*/)
		{
			//НомерДома = СтрЗаменить(НомерДома, "-","_");
			//РодительИндекса = ПолучитьПустуюСтруктуруАдреса();
			//Индекс = "";
			//Регион = ПолучитьАдресныйЭлемент(НазваниеРегиона, 1);
			if(true/*Регион.Код > 0*/)
			{
				//РодительИндекса = Регион;
				if(true/*НЕ ПустаяСтрока(Регион.Индекс)*/)
				{
					//Индекс = Регион.Индекс;
				}
			}
			//Район = ПолучитьАдресныйЭлемент(НазваниеРайона, 2, РодительИндекса.Код);
			if(true/*Район.Код > 0*/)
			{
				//РодительИндекса = Район;
				if(true/*НЕ ПустаяСтрока(Район.Индекс)*/)
				{
					//Индекс = Район.Индекс;
				}
			}
			//Город = ПолучитьАдресныйЭлемент(НазваниеГорода, 3, РодительИндекса.Код);
			if(true/*Город.Код > 0*/)
			{
				//РодительИндекса = Город;
				if(true/*НЕ ПустаяСтрока(Город.Индекс)*/)
				{
					//Индекс = Город.Индекс;
				}
			}
			//НаселенныйПункт = ПолучитьАдресныйЭлемент(НазваниеНаселенногоПункта, 4, РодительИндекса.Код);
			if(true/*НаселенныйПункт.Код > 0*/)
			{
				//РодительИндекса = НаселенныйПункт;
				if(true/*НЕ ПустаяСтрока(НаселенныйПункт.Индекс)*/)
				{
					//Индекс = НаселенныйПункт.Индекс;
				}
			}
			//Улица = ПолучитьАдресныйЭлемент(НазваниеУлицы, 5, РодительИндекса.Код);
			if(true/*Улица.Код > 0*/)
			{
				//ИндексУлицы = ПолучитьИндексПоУлицеДомуКорпусу(Улица, НомерДома, НомерКорпуса);
				if(true/*НЕ ПустаяСтрока(ИндексУлицы)*/)
				{
					//Индекс = ИндексУлицы;
				}
			}
			if(true/*Город.Код > 0 И ЗначениеЗаполнено(НомерДома) И НЕ ЗначениеЗаполнено(Индекс)*/)
			{
				//ИндексДомаКорпуса = ПолучитьИндексПоГородуДомуКорпусу(Город, НомерДома, НомерКорпуса);
				if(true/*НЕ ПустаяСтрока(ИндексДомаКорпуса)*/)
				{
					//Индекс = ИндексДомаКорпуса;
				}
			}
			return null;
		}
		// Процедура добавляет не нулевое значение кода в структуру

		public void ДобавитьКодВСтруктуру(/*ДанныеСтруктуры, ИмяЭлемента, КодЭлемента, УровеньРодителя, УровеньЭлемента*/)
		{
			if(true/*(КодЭлемента <> 0) ИЛИ (УровеньРодителя >= УровеньЭлемента)*/)
			{
				//ДанныеСтруктуры.Вставить(ИмяЭлемента, КодЭлемента);
			}
		}
		// Функция возвращает строку адресного классификатора по значениям адресных элементов

		public object ВернутьСтрокуАдресногоКлассификатораПоАдреснымЭлементам(/*Знач НазваниеРегиона, Знач НазваниеРайона, Знач НазваниеГорода, 
											Знач НазваниеНаселенногоПункта, Знач НазваниеУлицы*/)
		{
			//РодительскийЭлемент = Неопределено;
			//КодРодителяРодителя = 0;
			//Регион = ПолучитьАдресныйЭлемент(НазваниеРегиона, 1);
			if(true/*Регион.Код > 0*/)
			{
				//РодительскийЭлемент = Регион;
				//КодРодителяРодителя = Регион.Код;
			}
			//Район = ПолучитьАдресныйЭлемент(НазваниеРайона, 2, КодРодителяРодителя);
			if(true/*Район.Код > 0*/)
			{
				//РодительскийЭлемент = Район;
				//КодРодителяРодителя = Район.Код;
			}
			//Город = ПолучитьАдресныйЭлемент(НазваниеГорода, 3, КодРодителяРодителя);
			if(true/*Город.Код > 0*/)
			{
				//РодительскийЭлемент = Город;
				//КодРодителяРодителя = Город.Код;
			}
			//НаселенныйПункт = ПолучитьАдресныйЭлемент(НазваниеНаселенногоПункта, 4, КодРодителяРодителя);
			if(true/*НаселенныйПункт.Код > 0*/)
			{
				//РодительскийЭлемент = НаселенныйПункт;
				//КодРодителяРодителя = НаселенныйПункт.Код;
			}
			//Улица = ПолучитьАдресныйЭлемент(НазваниеУлицы, 5, КодРодителяРодителя);
			if(true/*Улица.Код > 0*/)
			{
				//РодительскийЭлемент = Улица;
				//КодРодителяРодителя = Улица.Код;
			}
			if(true/*РодительскийЭлемент = Неопределено*/)
			{
			}
			return null;
		}
		// Функция возвращает структуру ограничений по переданным параметрам
		// уже заполненным адресным полям
		//
		// Параметры:
		// Параметры:
		//  НазваниеРегиона - название региона( с сокращением)
		//  НазваниеРайона - название района( с сокращением)
		//  НазваниеГорода - название города( с сокращением)
		//  НазваниеНаселенногоПункта - название населенного пункта( с сокращением)
		//

		public object ВернутьСтруктуруОграниченийПоРодителю(/*Знач НазваниеРегиона, Знач НазваниеРайона, Знач НазваниеГорода, 
											Знач НазваниеНаселенногоПункта, Знач НазваниеУлицы, КодРодителя*/)
		{
			//СтруктураОграничений = Новый Структура();
			/*РодительскийЭлемент = ВернутьСтрокуАдресногоКлассификатораПоАдреснымЭлементам(НазваниеРегиона, НазваниеРайона, НазваниеГорода, 
											НазваниеНаселенногоПункта, НазваниеУлицы);*/
			//КодРодителя = РодительскийЭлемент.Код;
			/*// по коду определяем уровень элемента
*/
			//ТипЭлемента = ПолучитьТипАдресногоЭлемента(КодРодителя);
			//ДобавитьКодВСтруктуру(СтруктураОграничений, "КодРегионаВКоде", Цел(КодРодителя / МаскаРегиона()), ТипЭлемента, 1);
			//ДобавитьКодВСтруктуру(СтруктураОграничений, "КодРайонаВКоде", Цел(КодРодителя / МаскаРайона()) % 1000, ТипЭлемента, 2);
			//ДобавитьКодВСтруктуру(СтруктураОграничений, "КодГородаВКоде", Цел(КодРодителя / МаскаГорода()) % 1000, ТипЭлемента, 3);
			//ДобавитьКодВСтруктуру(СтруктураОграничений, "КодНаселенногоПунктаВКоде", Цел(КодРодителя / МаскаНасПункта()) % 1000, ТипЭлемента, 4);
			//ДобавитьКодВСтруктуру(СтруктураОграничений, "КодУлицыВКоде", Цел(КодРодителя / МаскаУлицы())% 10000, ТипЭлемента, 5);
			return null;
		}
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ И ФУНКЦИИ РАБОТЫ С АДРЕСНЫМ КОДОМ
		// Маска  СС РРР ГГГ ППП УУУУ ДДДД КККК АА
		//
		//        СС   - код региона
		//        РРР  - код района
		//        ГГГ  - код города
		//        ППП  - код населенного пункта
		//        УУУУ - код улицы
		//        ДДДД - код дома
		//        КККК - код квартиры
		//        АА   - код актуальности
		// Функция возвращает маску  для определения номера элемента в структуре кода
		//
		// Параметры:
		// Нет
		//
		// Возвращаемое значение:
		//  Число - маска с единица в значимых разрядах и нулями в остальных
		//

		public object МаскаРегиона(/**/)
		{
			return null;
		}
		// Функция возвращает маску  для определения номера элемента в структуре кода
		//
		// Параметры:
		// Нет
		//
		// Возвращаемое значение:
		//  Число - маска с единица в значимых разрядах и нулями в остальных
		//

		public object МаскаРайона(/**/)
		{
			return null;
		}
		// Функция возвращает маску  для определения номера элемента в структуре кода
		//
		// Параметры:
		// Нет
		//
		// Возвращаемое значение:
		//  Число - маска с единица в значимых разрядах и нулями в остальных
		//

		public object МаскаГорода(/**/)
		{
			return null;
		}
		// Функция возвращает маску  для определения номера элемента в структуре кода
		//
		// Параметры:
		// Нет
		//
		// Возвращаемое значение:
		//  Число - маска с единица в значимых разрядах и нулями в остальных
		//

		public object МаскаНасПункта(/**/)
		{
			return null;
		}
		// Функция возвращает маску  для определения номера элемента в структуре кода
		//
		// Параметры:
		// Нет
		//
		// Возвращаемое значение:
		//  Число - маска с единица в значимых разрядах и нулями в остальных
		//

		public object МаскаУлицы(/**/)
		{
			return null;
		}
		// Функция возвращает маску  для определения номера элемента в структуре кода
		//
		// Параметры:
		// Нет
		//
		// Возвращаемое значение:
		//  Число - маска с единица в значимых разрядах и нулями в остальных
		//

		public object МаскаДома(/**/)
		{
			return null;
		}
		// Функция возвращает маску  для определения номера элемента в структуре кода
		//
		// Параметры:
		// Нет
		//
		// Возвращаемое значение:
		//  Число - маска с единица в значимых разрядах и нулями в остальных
		//

		public object МаскаКвартиры(/**/)
		{
			return null;
		}
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ И ФУНКЦИИ - СТАНДАРТНЫЕ ОБРАБОТЧИКИ ПРИ РАБОТЕ С АДРЕСНЫМ КЛАССИФИКАТОРОМ
		//Функция по адресу возвращает структуру ограничений

		public object ПолучитьСтруктуруОграниченийПоАдресу(/*ПолеРегиона, ПолеРайона, ПолеГорода, ПолеНаселенногоПункта, ИмяУлицы, УровеньЭлемента*/)
		{
			if(true/*УровеньЭлемента > 1*/)
			{
				//КодРодителя = Неопределено;
				//СтруктураОграничений = ВернутьСтруктуруОграниченийПоРодителю(ПолеРегиона, ПолеРайона, ПолеГорода, ПолеНаселенногоПункта, ИмяУлицы, КодРодителя);
			}
			//СтруктураОграничений.Вставить("ТипАдресногоЭлемента", УровеньЭлемента);
			return null;
		}
		// Функция возвращает имя адресноно элемента определенного уровня по коду

		public object ПолучитьИмяАдресногоЭлементаПоКоду(/*КодЭлемента, ТипАдресногоЭлемента*/)
		{
			//ИмяАдресногоЭлемента = "";
			/*// сначала по коду определим уровень элемента, если не совпадет с требуемым, то к БД не обращаемся
*/
			//ТипЭлемента = ПолучитьТипАдресногоЭлемента(КодЭлемента);
			if(true/*ТипЭлемента <> ТипАдресногоЭлемента*/)
			{
			}
			//АдресныйЭлемент = ПолучитьСтруктуруАдресногоЭлемента(КодЭлемента);
			if(true/*АдресныйЭлемент.ТипАдресногоЭлемента = ТипАдресногоЭлемента*/)
			{
				//ИмяАдресногоЭлемента = ПолучитьНазвание(АдресныйЭлемент);
			}
			return null;
		}
		// Процедура по коду адресноно элемента возвращает строковые представления его иерерхии

		public void ПолучитьПоКодуАдресногоЭлементаЕгоКомпоненты(/*КодАдресногоЭлемента, Регион, Район, Город, НаселенныйПункт, Улица, Дом*/)
		{
			//Элемент = ПолучитьСтруктуруАдресногоЭлемента(КодАдресногоЭлемента);
			if(true/*Элемент.ТипАдресногоЭлемента >= 6*/)
			{
				//Дом = ПолучитьИмяАдресногоЭлементаПоКоду(КодАдресногоЭлемента - КодАдресногоЭлемента%МаскаДома(), 6);
			}
			if(true/*Элемент.ТипАдресногоЭлемента >= 5*/)
			{
				//Улица = ПолучитьИмяАдресногоЭлементаПоКоду(КодАдресногоЭлемента - КодАдресногоЭлемента%МаскаУлицы(), 5);
			}
			if(true/*Элемент.ТипАдресногоЭлемента >= 4*/)
			{
				//НаселенныйПункт = ПолучитьИмяАдресногоЭлементаПоКоду(КодАдресногоЭлемента - КодАдресногоЭлемента%МаскаНасПункта(), 4);
			}
			if(true/*Элемент.ТипАдресногоЭлемента >= 3*/)
			{
				//Город = ПолучитьИмяАдресногоЭлементаПоКоду(КодАдресногоЭлемента - КодАдресногоЭлемента%МаскаГорода(), 3);
			}
			if(true/*Элемент.ТипАдресногоЭлемента >= 2*/)
			{
				//Район = ПолучитьИмяАдресногоЭлементаПоКоду(КодАдресногоЭлемента - КодАдресногоЭлемента%МаскаРайона(), 2);
			}
			if(true/*Элемент.ТипАдресногоЭлемента >= 1*/)
			{
				//Регион = ПолучитьИмяАдресногоЭлементаПоКоду(КодАдресногоЭлемента - КодАдресногоЭлемента%МаскаРегиона(), 1);
			}
		}
		//  Процедура формирует строковое представление адресных элементов -
		// "родителей" переданого в переданных параментрах
		//
		// Параметры:
		//  Элемент - элемент справочника Адресный классфикатор, для которого надо получить родителей.
		//  Регион - строка, куда будет помещено строковое представление "родительского" региона.
		//  Район - строка, куда будет помещено строковое представление "родительского" района.
		//  Город - строка, куда будет помещено строковое представление "родительского" города.
		//  НаселенныйПункт - строка, куда будет помещено строковое представление "родительского" населенного пункта.
		//

		public void АдресныйЭлементЗаполнитьРодителей(/*Регион, Район, Город, НаселенныйПункт, Элемент*/)
		{
			if(true/*(Элемент.ТипАдресногоЭлемента > 4) И НЕ ЗначениеЗаполнено(НаселенныйПункт)*/)
			{
				//НаселенныйПункт = ПолучитьИмяАдресногоЭлементаПоКоду(Элемент.Код - Элемент.Код%МаскаНасПункта(), 4);
			}
			if(true/*(Элемент.ТипАдресногоЭлемента > 3) И НЕ ЗначениеЗаполнено(Город)*/)
			{
				//Город = ПолучитьИмяАдресногоЭлементаПоКоду(Элемент.Код - Элемент.Код%МаскаГорода(), 3);
			}
			if(true/*(Элемент.ТипАдресногоЭлемента > 2) И НЕ ЗначениеЗаполнено(Район)*/)
			{
				//Район = ПолучитьИмяАдресногоЭлементаПоКоду(Элемент.Код - Элемент.Код%МаскаРайона(), 2);
			}
			if(true/*(Элемент.ТипАдресногоЭлемента > 1) И НЕ ЗначениеЗаполнено(Регион)*/)
			{
				//Регион = ПолучитьИмяАдресногоЭлементаПоКоду(Элемент.Код - Элемент.Код%МаскаРегиона(), 1);
			}
		}
		//  Процедура проверяет правильность заполнения потомков определенного адресного элемента
		//
		// Параметры:
		//  Элемент - элемент справочника Адресный классфикатор, для которого надо получить родителей.
		//  Регион - строка, куда будет помещено строковое представление "родительского" региона.
		//  Район - строка, куда будет помещено строковое представление "родительского" района.
		//  Город - строка, куда будет помещено строковое представление "родительского" города.
		//  НаселенныйПункт - строка, куда будет помещено строковое представление "родительского" населенного пункта.
		//

		public void АдресныйЭлементПроверитьПравильностьЗаполненияПотомков(/*Регион, Район, Город, НаселенныйПункт, Улица, Элемент*/)
		{
			//КодЭлемента = Неопределено;
			//ИмяРегиона = ?(Элемент.ТипАдресногоЭлемента = 1, Элемент.Наименование, Регион);
			//ИмяРайона = ?(Элемент.ТипАдресногоЭлемента = 2, Элемент.Наименование, Район);
			//ИмяГорода = ?(Элемент.ТипАдресногоЭлемента = 3, Элемент.Наименование, Город);
			//ИмяНаселенногоПункта = ?(Элемент.ТипАдресногоЭлемента = 4, Элемент.Наименование, НаселенныйПункт);
			//ИмяУлицы = ?(Элемент.ТипАдресногоЭлемента = 5, Элемент.Наименование, Улица);
			if(true/*(Элемент.ТипАдресногоЭлемента < 2) И ЗначениеЗаполнено(ИмяРайона)*/)
			{
				//СтруктураОграничений = ПолучитьСтруктуруОграниченийПоАдресу(ИмяРегиона, ИмяРайона, "", "", "", 2);
				//СтруктураОграничений.Свойство("КодРайонаВКоде", КодЭлемента);
				if(true/*(КодЭлемента = Неопределено) ИЛИ (КодЭлемента = -1)*/)
				{
					/*// очищаем элемент и все что ниже него по ирерархии
*/
					//Район = "";
					//Город = "";
					//НаселенныйПункт = "";
					//Улица = "";
				}
			}
			if(true/*(Элемент.ТипАдресногоЭлемента < 3) И ЗначениеЗаполнено(ИмяГорода)*/)
			{
				//СтруктураОграничений = ПолучитьСтруктуруОграниченийПоАдресу(ИмяРегиона, ИмяРайона, ИмяГорода, "", "", 3);
				//СтруктураОграничений.Свойство("КодГородаВКоде", КодЭлемента);
				if(true/*(КодЭлемента = Неопределено) ИЛИ (КодЭлемента = -1)*/)
				{
					//Город = "";
					//НаселенныйПункт = "";
					//Улица = "";
				}
			}
			if(true/*(Элемент.ТипАдресногоЭлемента < 4) И ЗначениеЗаполнено(ИмяНаселенногоПункта)*/)
			{
				//СтруктураОграничений = ПолучитьСтруктуруОграниченийПоАдресу(ИмяРегиона, ИмяРайона, ИмяГорода, ИмяНаселенногоПункта, "", 4);
				//СтруктураОграничений.Свойство("КодНаселенногоПунктаВКоде", КодЭлемента);
				if(true/*(КодЭлемента = Неопределено) ИЛИ (КодЭлемента = -1)*/)
				{
					//НаселенныйПункт = "";
					//Улица = "";
				}
			}
			if(true/*(Элемент.ТипАдресногоЭлемента < 5) И ЗначениеЗаполнено(ИмяУлицы)*/)
			{
				//СтруктураОграничений = ПолучитьСтруктуруОграниченийПоАдресу(ИмяРегиона, ИмяРайона, ИмяГорода, ИмяНаселенногоПункта, ИмяУлицы, 5);
				//СтруктураОграничений.Свойство("КодУлицыВКоде", КодЭлемента);
				if(true/*(КодЭлемента = Неопределено) ИЛИ (КодЭлемента = -1)*/)
				{
					//Улица = "";
				}
			}
		}
		// Процедура устанавливает последние значения поиска по строке для адресныхЭлементов

		public void УстановитьПоследниеЗначенияПоисковПоСтрокеДляАдресныхЭлементов(/*Регион, Район, Город, НаселенныйПункт, Улица,
							ПоследнееЗначениеРегион, ПоследнееЗначениеРайон, ПоследнееЗначениеГород, ПоследнееЗначениеНаселенныйПункт, ПоследнееЗначениеУлица*/)
		{
			//ПоследнееЗначениеРегион = Регион;
			//ПоследнееЗначениеРайон = Район;
			//ПоследнееЗначениеГород = Город;
			//ПоследнееЗначениеНаселенныйПункт = НаселенныйПункт;
			//ПоследнееЗначениеУлица = Улица;
		}
		// Стандартный обработчик "При Изменении" адресного элемента

		public void АдресныйЭлементПриИзменении(/*Элемент, Поле1, Поле2, Поле3, Поле4, Поле5, Поле6, Поле7, Поле8, 
			ПоследнееЗначениеЭлементаПоискаПоСтроке*/)
		{
			//ПоследнееЗначениеЭлементаПоискаПоСтроке = Элемент.Значение;
			//Индекс = ПолучитьИндекс(Поле2, Поле3, Поле4, Поле5, Поле6, Поле7, Поле8);
			if(true/*ЗначениеЗаполнено(Индекс)*/)
			{
				//Поле1 = Индекс;
			}
		}
		// Стандартный обработчик "Начало выбора из списка" для выпадающего списка сокращений адресного элемента

		public void АдресныйЭлементПриВыбореИзСпискаСокращений(/*ЭтаФорма, Элемент, СтандартнаяОбработка, ПолеРедактирования, Уровень*/)
		{
			//СтандартнаяОбработка = Ложь;
			//НазваниеТерриториальнойЕдиницы = СокрЛП(ОбрезатьСокращение(ПолеРедактирования));
			//СписокСокращений = ПолучитьСписокСокращений(НазваниеТерриториальнойЕдиницы, Уровень);
			if(true/*СписокСокращений <> Неопределено*/)
			{
				//Сокращение = ЭтаФорма.ВыбратьИзСписка(СписокСокращений, Элемент);
				if(true/*Сокращение <> Неопределено*/)
				{
					//ПолеРедактирования = НазваниеТерриториальнойЕдиницы + " " + СокрЛП(Сокращение.Значение);
				}
			}
		}
		// Стандартный обработчик "Обработка выбора" адресного элемента

		public void АдресныйЭлементОбработатьВыбор(/*Элемент, ВыбранноеЗначение, СтандартнаяОбработка, АдреснаяЗапись*/)
		{
			//СтандартнаяОбработка = Ложь;
			//АдреснаяЗапись = ПолучитьСтруктуруАдресногоЭлемента(ВыбранноеЗначение.Код);
			//Элемент.Значение = СокрЛП(АдреснаяЗапись.Наименование) + " " + СокрЛП(АдреснаяЗапись.Сокращение);
		}
		// Процедура автоподбора текста для адресного элемента

		public void АдресныйЭлементАвтоподборТекста(/*Элемент, Текст, ТекстАвтоПодбора, СтандартнаяОбработка,
												 ПолеРегиона, ПолеРайона, ПолеГорода, ПолеНаселенногоПункта, УровеньЭлемента, СтруктураЭлемента*/)
		{
			//МассивПоиска = Новый Массив();
			//МассивПоиска.Добавить("Наименование");
			//СтруктураОграничений = ПолучитьСтруктуруОграниченийПоАдресу(ПолеРегиона, ПолеРайона, ПолеГорода, ПолеНаселенногоПункта, "", УровеньЭлемента);
			/*СтруктураЭлемента = ПроцедурыПоискаПоСтроке.АвтоПодборТекстаВЭлементеУправленияПоРегистру(Элемент, Текст, ТекстАвтоПодбора, СтандартнаяОбработка, СтруктураОграничений, 
												  "АдресныйКлассификатор", МассивПоиска, "Наименование");*/
		}
		// Функция определяет необходимый уровень для детализации имени адресного элемента

		public object ОпределитьУровеньДетализацииДляАдресногоЭлемента(/*ПолеРегиона, ПолеРайона, ПолеГорода, ПолеНаселенногоПункта, УровеньЭлемента*/)
		{
			//НачальныйУровеньАдреса = 1;
			if(true/*ЗначениеЗаполнено(ПолеРегиона) И (УровеньЭлемента >= 2)*/)
			{
				//НачальныйУровеньАдреса = 2;
			}
			if(true/*ЗначениеЗаполнено(ПолеРайона) И (УровеньЭлемента >= 3)*/)
			{
				//НачальныйУровеньАдреса = 3;
			}
			if(true/*ЗначениеЗаполнено(ПолеГорода) И (УровеньЭлемента >= 4)*/)
			{
				//НачальныйУровеньАдреса = 4;
			}
			if(true/*ЗначениеЗаполнено(ПолеНаселенногоПункта) И (УровеньЭлемента >= 5)*/)
			{
				//НачальныйУровеньАдреса = 5;
			}
			return null;
		}
		// Процедура обработки окончания ввода текста для адресного элемента

		public void АдресныйЭлементОкончаниеВводаТекстаАдреса(/*ЭтаФорма, Элемент, Текст, Значение, СтандартнаяОбработка,
													ПолеРегиона, ПолеРайона, ПолеГорода, ПолеНаселенногоПункта, УровеньЭлемента,
													ОбработкаПоискаПоСтроке, ТекстПоискаПоСтроке, ПоследнееЗначениеЭлементаПоискаПоСтроке, СтруктураЭлемента*/)
		{
			//СтруктураОграничений = ПолучитьСтруктуруОграниченийПоАдресу(ПолеРегиона, ПолеРайона, ПолеГорода, ПолеНаселенногоПункта, "", УровеньЭлемента);
			//НачальныйУровеньДетализацииАдреса = ОпределитьУровеньДетализацииДляАдресногоЭлемента(ПолеРегиона, ПолеРайона, ПолеГорода, ПолеНаселенногоПункта, УровеньЭлемента);
			//СтруктураЭлемента = Новый Структура();
			/*ПроцедурыПоискаПоСтроке.ОкончаниеВводаТекстаВЭлементеУправленияПоАдресномуКлассификатору(Элемент, Текст, Значение, СтандартнаяОбработка, 
		СтруктураОграничений, ЭтаФорма,  
		ОбработкаПоискаПоСтроке, ТекстПоискаПоСтроке, ПоследнееЗначениеЭлементаПоискаПоСтроке, ,
		СтруктураЭлемента, НачальныйУровеньДетализацииАдреса, УровеньЭлемента - 1);*/
		}
		// Процедура обработки окончания ввода текста для Города

		public void АдресныйЭлементОкончаниеВводаТекстаГорода(/*ЭтаФорма, Элемент, Текст, Значение, СтандартнаяОбработка,
													ОбработкаПоискаПоСтроке, ТекстПоискаПоСтроке, 
													ПоследнееЗначениеЭлементаПоискаПоСтроке, СтруктураЭлемента*/)
		{
			//СтруктураЭлемента = Новый Структура();
			/*ПроцедурыПоискаПоСтроке.ОкончаниеВводаТекстаВЭлементеУправленияПоГородуУлице(Элемент, Текст, Значение, СтандартнаяОбработка, 
		ЭтаФорма,  
		ОбработкаПоискаПоСтроке, ТекстПоискаПоСтроке, ПоследнееЗначениеЭлементаПоискаПоСтроке, ,
		СтруктураЭлемента, 2, Истина);*/
		}
		// Процедура обработки подбора текста для Города

		public object АвтоПодборТекстаВЭлементеУправленияПоГороду(/*Элемент, Текст, ТекстАвтоПодбора, СтандартнаяОбработка*/)
		{
			//РезультатЗапроса = ВернутьРезультатЗапросаПоискаГорода(Текст, 2);
			//МассивПолеВыбора = Новый Массив();
			//МассивПолеВыбора.Добавить("Наименование");
			//СтруктураНайденногоЭлемента = ПроцедурыПоискаПоСтроке.ПолучитьАвтоподборПоВыборке(РезультатЗапроса, Текст, ТекстАвтоПодбора, СтандартнаяОбработка, МассивПолеВыбора);
			return null;
		}
		// Процедура обработки окончания ввода текста для Города

		public void АдресныйЭлементОкончаниеВводаТекстаУлицы(/*ЭтаФорма, Элемент, Текст, Значение, СтандартнаяОбработка,
													ПолеГорода, ОбработкаПоискаПоСтроке, ТекстПоискаПоСтроке, 
													ПоследнееЗначениеЭлементаПоискаПоСтроке, СтруктураЭлемента*/)
		{
			//СтруктураЭлемента = Новый Структура();
			/*ПроцедурыПоискаПоСтроке.ОкончаниеВводаТекстаВЭлементеУправленияПоГородуУлице(Элемент, Текст, Значение, СтандартнаяОбработка, 
		ЭтаФорма,  
		ОбработкаПоискаПоСтроке, ТекстПоискаПоСтроке, ПоследнееЗначениеЭлементаПоискаПоСтроке, ,
		СтруктураЭлемента, 6, Ложь, ПолеГорода);*/
		}
		// Процедура обработки подбора текста для Улице

		public object АвтоПодборТекстаВЭлементеУправленияПоУлице(/*Элемент, Текст, ТекстАвтоПодбора, СтандартнаяОбработка, ПолеГорода*/)
		{
			//РезультатЗапроса = ВернутьРезультатЗапросаПоискаУлицыГорода(ПолеГорода, Текст, 2);
			//МассивПолеВыбора = Новый Массив();
			//МассивПолеВыбора.Добавить("Наименование");
			//СтруктураНайденногоЭлемента = ПроцедурыПоискаПоСтроке.ПолучитьАвтоподборПоВыборке(РезультатЗапроса, Текст, ТекстАвтоПодбора, СтандартнаяОбработка, МассивПолеВыбора);
			return null;
		}
		// Процедура модального редактирования адреса

		public void РедактироватьМодальноЭлементАдреса(/*Элемент, ЭтаФорма = Неопределено, КлючФормы = Неопределено*/)
		{
			//ОбработкаРедактированияАдреса = Обработки.РедактированиеКонтактнойИнформации.Создать();
			//ОбработкаРедактированияАдреса.мВозвратСтруктуры = Истина;
			//ОбработкаРедактированияАдреса.РедактироватьМодальноЭлементАдресаРазделенногоЗапятыми(Элемент, ЭтаФорма, КлючФормы);
		}
		///////////////////////////////////////////////////////////////////////////////
		// ФУНКЦИИ ПОДБОРА ГОРОДА И УЛИЦЫ
		//
		// Отдельная отработка подбора для городов-субъектов РФ Москвы и С.-Петербурга
		// функция возвращает результат запроса для поиска города

		public object ВернутьРезультатЗапросаПоискаГорода(/*ИмяГорода, КоличествоСтрокВыборки*/)
		{
			//ОграничениеПоИмени = ПроцедурыПоискаПоСтроке.СформироватьОграничениеПоПолюВхождениеВНачало("АдресныйКлассификатор.Наименование", Тип("Строка"));
			/*НачалоЗапроса = "ВЫБРАТЬ ПЕРВЫЕ " + Строка(КоличествоСтрокВыборки) + " 
	              |	АдресныйКлассификатор.Код,
	              |	АдресныйКлассификатор.КодРегионаВКоде,
	              |	АдресныйКлассификатор.Наименование,
	              |	АдресныйКлассификатор.Сокращение,
	              |	АдресныйКлассификатор.Индекс,
	              |	АдресныйКлассификатор.ТипАдресногоЭлемента,
	              |	АдресныйКлассификатор.КодРайонаВКоде,
	              |	АдресныйКлассификатор.КодГородаВКоде,
	              |	АдресныйКлассификатор.КодНаселенногоПунктаВКоде,
	              |	АдресныйКлассификатор.КодУлицыВКоде
	              |ИЗ
	              |	РегистрСведений.АдресныйКлассификатор КАК АдресныйКлассификатор
	              |
	              |ГДЕ
				  | " + ОграничениеПоИмени + "
				  |	И ";*/
			/*ТекстЗапроса = НачалоЗапроса + " (АдресныйКлассификатор.ТипАдресногоЭлемента = 3 ) 
					| Объединить ВСЕ 
					| 
					|" + НачалоЗапроса + "  			  
	 			  	|	  (АдресныйКлассификатор.ТипАдресногоЭлемента = 1) 
				  	| 	И (АдресныйКлассификатор.КодРегионаВКоде В (77, 78)) 
				  	|";*/
			/*ТекстЗапроса = ТекстЗапроса + "
				|УПОРЯДОЧИТЬ ПО
				|	Наименование";*/
			//Запрос = Новый Запрос(ТекстЗапроса);
			//Запрос.УстановитьПараметр("ТекстАвтоПодбора", ИмяГорода + "%");
			//РезультатЗапроса = Запрос.Выполнить();
			return null;
		}
		// Функция возвращает структуру ограничений улицы по городу

		public object СформироватьСтруктуруОграниченийУлицыПоГороду(/*ИмяГорода*/)
		{
			//ОбрезанноеИмяГорода = ВРег(ОбрезатьСокращение(ИмяГорода));
			if(true/*ОбрезанноеИмяГорода = "МОСКВА" ИЛИ ОбрезанноеИмяГорода = "САНКТ-ПЕТЕРБУРГ"*/)
			{
				/*//это вот и есть исключение
*/
				//СтруктураОграничений = Новый Структура();
				//КодРегионаВКоде = ?(ОбрезанноеИмяГорода = "МОСКВА", 77, 78);
				//СтруктураОграничений.Вставить("КодРегионаВКоде", КодРегионаВКоде);
				//СтруктураОграничений.Вставить("КодНаселенногоПунктаВКоде", 0);
				//СтруктураОграничений.Вставить("ТипАдресногоЭлемента", 5);
			}
			return null;
		}
		// функция возвращает результат запроса для поиска улицы города

		public object ВернутьРезультатЗапросаПоискаУлицыГорода(/*ИмяГорода, ИмяУлицы, КоличествоСтрокВыборки*/)
		{
			//МассивИменПоиска = Новый Массив();
			//МассивИменПоиска.Добавить("Наименование");
			//СтруктураОграничений = СформироватьСтруктуруОграниченийУлицыПоГороду(ИмяГорода);
			//РезультатПодбора = ПроцедурыПоискаПоСтроке.ПолучитьРезультатЗапросаАвтоподбораДляРегистра(ИмяУлицы, СтруктураОграничений, "АдресныйКлассификатор", МассивИменПоиска, КоличествоСтрокВыборки);
			return null;
		}
		////////////////////////////////////////////////////////////////////////////////
		// ДРУГИЕ ПРОЦЕДУРЫ И ФУНКЦИИ
		//  Функция формирует сведения об указанном ЮрФизЛице. К сведениям относятся -
		// наименование, адрес, номер телефона, банковские реквизиты.
		//
		// Параметры:
		//  ЮрФизЛицо   - организация или физическое лицо, о котором собираются сведения.
		//  ДатаПериода - дата, на которую выбираются сведения о ЮрФизЛице.
		//  ДляФизЛицаТолькоИнициалы - Для физ. лица выводить только инициалы имени и отчества.
		//  БанковскийСчет - Банковский счет, если счет не основной.
		//
		// Возвращаемое значение:
		//  Сведения - собранные сведения.
		//

		public object СведенияОЮрФизЛице(/*ЮрФизЛицо, ДатаПериода, ДляФизЛицаТолькоИнициалы = Истина, БанковскийСчет = Неопределено*/)
		{
			//Сведения = Новый Структура("Представление, ПолноеНаименование, НаименованиеСокращенное, КодПоОКПО, ИНН, КПП, Телефоны, ЮридическийАдрес, Банк, БИК, КоррСчет, НомерСчета, АдресБанка");
			//Запрос   = Новый Запрос;
			if(true/*НЕ ЗначениеЗаполнено(ЮрФизЛицо)*/)
			{
			}
			//Данные   = Неопределено;
			//Запрос.УстановитьПараметр("ПарЮрФизЛицо", ЮрФизЛицо);
			//Запрос.УстановитьПараметр("ТипАдрес", Перечисления.ТипыКонтактнойИнформации.Адрес);
			//Запрос.УстановитьПараметр("ТипТелефон", Перечисления.ТипыКонтактнойИнформации.Телефон);
			if(true/*БанковскийСчет = Неопределено ИЛИ БанковскийСчет.Пустая()*/)
			{
				//ТекстУсловиеБанковскийСчет = "БанковскиеСчета.Ссылка = Организации.ОсновнойБанковскийСчет";
			}
			//Запрос.УстановитьПараметр("ПустойБанк", Справочники.Банки.ПустаяСсылка());
			/*ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	Организации.Представление КАК Наименование
	|	, ВЫРАЗИТЬ (Организации.НаименованиеПолное КАК Строка(1000)) КАК ПолноеНаименование
	|	, Организации.ИНН КАК ИНН
	|	, Организации.КПП  КАК КПП
	|	, Организации.КодПоОКПО КАК КодПоОКПО
	|	, ЕСТЬNULL(БанковскиеСчета.НомерСчета,"""") КАК НомерСчета
	|	, ЕСТЬNULL(Банки.Ссылка,&ПустойБанк) КАК Банк
	|	, ЕСТЬNULL(Банки.Код,"""") КАК БИК
	|	, ЕСТЬNULL(Банки.КоррСчет,"""") КАК КоррСчет
	|	, ВЫРАЗИТЬ (ЕСТЬNULL(Банки.Адрес,"""") КАК Строка(1000)) КАК АдресБанка
	|" + ТекстКонтактнаяИнформацияАдреса + "
	|	, МАКСИМУМ (ВЫБОР КОГДА КонтактнаяИнформация.Вид = &ВидТелефона ТОГДА ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК Строка(1000))
	|	  	ИНАЧЕ """" КОНЕЦ) КАК Телефон";*/
			if(true/*ИмяСправочника = "Организации"*/)
			{
				/*ТекстЗапроса = ТекстЗапроса +"
		|	, Организации.НаименованиеСокращенное КАК НаименованиеСокращенное
		|	, Организации.СвидетельствоСерияНомер КАК СвидетельствоСерияНомер
		|	, Организации.СвидетельствоДатаВыдачи КАК СвидетельствоДатаВыдачи";*/
			}
			/*ТекстЗапроса = ТекстЗапроса + "
	|ИЗ
	|	Справочник." + ИмяСправочника + " КАК Организации
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ Справочник.БанковскиеСчета КАК БанковскиеСчета
	|	ПО " + ТекстУсловиеБанковскийСчет + "
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Банки КАК Банки
	|	ПО	ВЫБОР КОГДА БанковскиеСчета.БанкДляРасчетов = &ПустойБанк
	|			ТОГДА БанковскиеСчета.Банк
	|			ИНАЧЕ БанковскиеСчета.БанкДляРасчетов
	|		КОНЕЦ = Банки.Ссылка
	|
	|   ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
	|	ПО " + ТекстУсловияОбъектКонтактнойИнформации + "
	|
	|ГДЕ
	|	Организации.Ссылка = &ПарЮрФизЛицо
	|
	|СГРУППИРОВАТЬ ПО
	|	Организации.Представление
	|	, ВЫРАЗИТЬ (Организации.НаименованиеПолное КАК Строка(1000))
	|	, Организации.ИНН
	|	, Организации.КПП
	|	, Организации.КодПоОКПО
	|	, ЕСТЬNULL(БанковскиеСчета.НомерСчета,"""")
	|	, ЕСТЬNULL(Банки.Ссылка,&ПустойБанк)
	|	, ЕСТЬNULL(Банки.Код,"""")
	|	, ЕСТЬNULL(Банки.КоррСчет,"""")
	|	, ВЫРАЗИТЬ (ЕСТЬNULL(Банки.Адрес,"""") КАК Строка(1000))";*/
			if(true/*ИмяСправочника = "Организации"*/)
			{
				/*ТекстЗапроса = ТекстЗапроса +"
		|	, Организации.НаименованиеСокращенное
		|	, Организации.СвидетельствоСерияНомер
		|	, Организации.СвидетельствоДатаВыдачи";*/
			}
			//Запрос.Текст = ТекстЗапроса;
			//Данные = Запрос.Выполнить().Выбрать();
			//Данные.Следующий();
			//Сведения.Вставить("КодПоОКПО", Данные.КодПоОКПО);
			if(true/*ЮрФизЛицо.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо*/)
			{
				//Сведения.Вставить("КПП",       Данные.КПП);
			}
			//Сведения.Вставить("Представление",    Данные.Наименование);
			//Сведения.Вставить("ИНН",              Данные.ИНН);
			//Сведения.Вставить("Телефоны",         СокрЛП(Данные.Телефон));
			//Сведения.Вставить("НомерСчета",       Данные.НомерСчета);
			//Сведения.Вставить("Банк",             Данные.Банк);
			//Сведения.Вставить("БИК",              Данные.БИК);
			//Сведения.Вставить("АдресБанка",       СокрЛП(Данные.АдресБанка));
			//Сведения.Вставить("КоррСчет",         Данные.КоррСчет);
			//Сведения.Вставить("ЮридическийАдрес", СокрЛП(Данные.ЮридическийАдрес));
			//Сведения.Вставить("ФактическийАдрес", СокрЛП(Данные.ФактическийАдрес));
			if(true/*ЗначениеЗаполнено(Данные.ПолноеНаименование)*/)
			{
				//Сведения.ПолноеНаименование = СокрЛП(Данные.ПолноеНаименование);
			}
			if(true/*ИмяСправочника = "Организации"*/)
			{
				//Сведения.НаименованиеСокращенное = СокрЛП(Данные.НаименованиеСокращенное);
			}
			return null;
		}
		// СведенияОЮрФизЛице()
		// Функция находит актуальное значение адреса в контакной информации.
		//
		// Параметры:
		//  Объект - СправочникСсылка, объект контактной информации
		//  ТипАдреса - тип контактной информации
		//
		// Возвращаемое значение
		//  Строка - представление найденного адреса
		//

		public object ПолучитьАдресИзКонтактнойИнформации(/*Объект, ТипАдреса = ""*/)
		{
			//ОбъектКонтактнойИнформации = Объект;
			if(true/*НЕ ЗначениеЗаполнено(ТипАдреса)*/)
			{
			}
			if(true/*ТипАдреса="Фактический"*/)
			{
				//Начало = "Факт";
			}
			if(true/*ТипЗнч(Объект) = Тип("СправочникСсылка.Организации")*/)
			{
				if(true/*Объект.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ФизЛицо*/)
				{
					//ОбъектКонтактнойИнформации = Объект.ИндивидуальныйПредприниматель;
					if(true/*ТипАдреса="Почтовый"*/)
					{
						//Окончание = "ОрганизацииПочтовый";
					}
				}
			}
			//ВидАдреса = Справочники.ВидыКонтактнойИнформации[Начало+"Адрес"+Окончание];
			//Запрос = Новый Запрос;
			//Запрос.УстановитьПараметр("Объект", ОбъектКонтактнойИнформации);
			//Запрос.УстановитьПараметр("Тип"   , Перечисления.ТипыКонтактнойИнформации.Адрес);
			//Запрос.УстановитьПараметр("Вид"   , ВидАдреса);
			/*Запрос.Текст = "
	|ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
	|	КонтактнаяИнформация.Представление
	|ИЗ
	|	РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
	|ГДЕ
	|	КонтактнаяИнформация.Объект = &Объект
	|	И
	|	КонтактнаяИнформация.Тип = &Тип
	|	И
	|	КонтактнаяИнформация.Вид = &Вид
	|";*/
			//РезультатЗапроса = Запрос.Выполнить();
			if(true/*РезультатЗапроса.Пустой()*/)
			{
			}
			return null;
		}
		// ПолучитьАдресИзКонтактнойИнформации()
		// Функция находит актуальное значение телефона в контакной информации.
		//
		// Параметры:
		//  Объект - СправочникСсылка, объект контактной информации
		//
		// Возвращаемое значение
		//  Строка - представление найденного телефона
		//

		public object ПолучитьТелефонИзКонтактнойИнформации(/*Объект, ВидТелефона = Неопределено*/)
		{
			if(true/*ВидТелефона = Неопределено*/)
			{
				//ВидТелефона = Справочники.ВидыКонтактнойИнформации.ТелефонОрганизации;
			}
			//Запрос = Новый Запрос;
			//Запрос.УстановитьПараметр("Объект", Объект);
			//Запрос.УстановитьПараметр("Тип"   , Перечисления.ТипыКонтактнойИнформации.Телефон);
			//Запрос.УстановитьПараметр("Вид"   , ВидТелефона);
			/*Запрос.Текст = 
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
	|	КонтактнаяИнформация.Представление
	|ИЗ
	|	РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
	|ГДЕ
	|	КонтактнаяИнформация.Объект = &Объект
	|	И КонтактнаяИнформация.Тип = &Тип
	|	И КонтактнаяИнформация.Вид = &Вид";*/
			//РезультатЗапроса = Запрос.Выполнить();
			if(true/*РезультатЗапроса.Пустой()*/)
			{
			}
			return null;
		}
		// ПолучитьТелефонИзКонтактнойИнформации()
		// Функция приводит телефонный номер к одному из указанных в настройке шаблонов
		//
		// Параметры
		//  НомерТЛФ – строка, номер телефона, который надо преобразовывать
		//
		// Возвращаемое значение:
		//   Приведенный номер – строка, номер, приведенный к одному из шаблонов
		//

		public object ПривестиНомерТелефонаКШаблону(/*НомерТЛФ*/)
		{
			//ТолькоЦифрыНомера = "";
			//КоличествоЦифрНомера = 0;
			if(true/*КоличествоЦифрНомера = 0*/)
			{
			}
			//СтруктураШаблонов = Константы.ШаблоныТелефонныхНомеров.Получить().Получить();
			if(true/*ТипЗнч(СтруктураШаблонов) <> Тип("Соответствие")*/)
			{
			}
			//ПолученныйШаблон = СтруктураШаблонов.Получить(КоличествоЦифрНомера);
			if(true/*ПолученныйШаблон = Неопределено*/)
			{
			}
			//ПриведенныйНомер = "";
			//НомерЦифры = 0;
			return null;
		}
		// ПривестиКШаблону()
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ И ФУНКЦИИ РАБОТЫ С ФОРМАМИ МЕХАНИЗМА ХРАНЕНИЯ КОНТАКНОЙ ИНФОРМАЦИИ
		// Процедура открывает форму справочника ВидыКонтактнойИнформации для выбора.
		//
		// Параметры:
		//  РеджимВыбора - булево, задает режим выбора для открываемой формы.
		//  ВладелецФормы - задает владельца для открываемой формы.
		//  ЗначениеОтбораПоТипу - задает значение отбора по типу конт.инф.
		//  ЗначениеОтбораПоВидуОбъектаКИ - задает значение отбора по виду объекта конт.инф.

		public void ОткрытьФормуВыбораВидаКИ(/*РежимВыбора, ВладелецФормы, ЗначениеОтбораПоТипу = Неопределено,
                                     ЗначениеОтбораПоВидуОбъектаКИ = Неопределено*/)
		{
			//ВыбФорма = Справочники.ВидыКонтактнойИнформации.ПолучитьФорму("ФормаВыбора", ВладелецФормы);
			//ВыбФорма.РежимВыбора = РежимВыбора;
			if(true/*ЗначениеОтбораПоТипу <> Неопределено*/)
			{
				//ВыбФорма.Отбор.Тип.Значение = ЗначениеОтбораПоТипу;
				//ВыбФорма.Отбор.Тип.Использование = Истина;
				//ВыбФорма.ЭлементыФормы.СправочникСписок.НастройкаОтбора.Тип.Доступность = Ложь;
			}
			if(true/*ЗначениеОтбораПоВидуОбъектаКИ <> Неопределено*/)
			{
				//ВыбФорма.Отбор.ВидОбъектаКонтактнойИнформации.Значение = ЗначениеОтбораПоВидуОбъектаКИ;
				//ВыбФорма.Отбор.ВидОбъектаКонтактнойИнформации.Использование = Истина;
				//ВыбФорма.ЭлементыФормы.СправочникСписок.НастройкаОтбора.ВидОбъектаКонтактнойИнформации.Доступность = Ложь;
			}
			if(true/*ТипЗнч(ВладелецФормы.Значение) = Тип("СправочникСсылка.ВидыКонтактнойИнформации")
	   И ЗначениеЗаполнено(ВладелецФормы.Значение)*/)
			{
				//ВыбФорма.ПараметрТекущаяСтрока = ВладелецФормы.Значение;
			}
			//ВыбФорма.Открыть();
		}
	}
}
